How to add players to team when they join

Discussion in 'Plugin Development' started by Jbitters3, Oct 19, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    Jbitters3

    I made an arraylist and I want to add players to the teams on a playerjoinevent but I have four teams that they need to be added to so I do not want all the same thing. I was thinking getting a random number then checking to see what it then adding that player to that team.
     
  2. Offline

    calebbfmv

    if(listName.contains(p)){
    list.add(p);
    }else{
    // do it for other teams.
     
  3. Offline

    Jbitters3

    calebbfmv wouldnt that just add to one team?
     
  4. Offline

    calebbfmv

    No, it doesn't. Use a for loop then check the number of players on team, see if their balanced, then add to accordingly.
     
  5. Offline

    1Rogue

    Code:java
    1. public class TeamManager() {
    2.  
    3. private final HashMap<String, Team> teams = new ConcurrentHashMap();
    4.  
    5. // after adding teams "red", "blue", "green", and "yellow".
    6.  
    7. //...
    8.  
    9. public List<String> getLowestTeam() {
    10. final List<String> back;
    11. for (String team : teams.keySet()) {
    12. if (back == null) {
    13. back = teams.get(team);
    14. } else if (back.size().compareTo(teams.get(team).size()) > 0) {
    15. back = teams.get(team);
    16. }
    17. }
    18. return back;
    19. }
    20.  
    21. }
    22.  
    23. class Team() {
    24.  
    25. // Increment or decrement based on number of players
    26. private int count = 0;
    27.  
    28. // ...
    29.  
    30. public int size() {
    31. return this.count;
    32. }
    33.  
    34. }
     
  6. Offline

    Jbitters3

    1Rogue so this will not work
    Code:java
    1. public class PlayerJoin implements Listener{
    2.  
    3. public static ArrayList<Player> RedTeam = new ArrayList<Player>();
    4. public static ArrayList<Player> BlueTeam = new ArrayList<Player>();
    5. public static ArrayList<Player> GreenTeam = new ArrayList<Player>();
    6. public static ArrayList<Player> YellowTeam = new ArrayList<Player>();
    7.  
    8.  
    9. @EventHandler
    10. public void onPlayerJoinEvent(PlayerJoinEvent e){
    11. if(RedTeam.size() < BlueTeam.size()){
    12. RedTeam.addPlayer(p);
    13. }else if(BlueTeam.size() < RedTeam.size()){
    14. BlueTeam.addPlayer(p);
    15. }else if(BlueTeam.size() < GreenTeam.size()){
    16. GreenTeam.addPlayer(p);
    17. }else if(BlueTeam.size()< YellowTeam.size()){
    18. YellowTeam.addPlayer(p);
    19. }else if(RedTeam.size() < GreenTeam.size()){
    20. GreenTeam.addPlayer(p);
    21. }else if(RedTeam.size() < YellowTeam.size()){
    22. YellowTeam.addPlayer(p);
    23. }else if(YellowTeam.size() < BlueTeam.size()){
    24. BlueTeam.addPlayer(p);
    25. }else if(YellowTeam.size() < RedTeam.size()){
    26. RedTeam.addPlayer(p);
    27. }else if(YellowTeam.size() < GreenTeam.size()){
    28. GreenTeam.addPlayer(p);
    29. }else if(GreenTeam.size() < RedTeam.size()){
    30. RedTeam.addPlayer(p);
    31. }else if(GreenTeam.size() < BlueTeam.size()){
    32. BlueTeam.addPlayer(p);
    33. }else if(GreenTeam.size() < YellowTeam.size()){
    34. YellowTeam.addPlayer(p);
    35. }
    36.  
    37.  
    38.  
    39.  
    40.  
    41. }
    42.  
    43. }
     
  7. Offline

    1Rogue


    What if Red team has 47 player, blue team has 48 players, and yellow team has 5 players?

    Also, don't store lists of players, use their names.
     
Thread Status:
Not open for further replies.

Share This Page