Scoreboard Teams not Working?

Discussion in 'Plugin Development' started by TheBlueBlaster, Jan 10, 2016.

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

    TheBlueBlaster

    So im trying to create a team but when i type /scoreboard teams list after i make the team with the command it just says No registered teams.

    Code:
    Code:
    if (args[0].equalsIgnoreCase("create")) {
                    if(!(args.length == 2)){
                        player.sendMessage("§cUsage: /team create <name>");
                        return true;
                    }
                    player.sendMessage(publicPrefix + "§aCreated team " + args[1] + "!");
                    ScoreboardManager manager = Bukkit.getScoreboardManager();
                    org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard();
                    Team team = board.registerNewTeam(args[1] + "");
               
                    team.addPlayer(player);
                   
                }
     
  2. Offline

    ski23

    Add logger messages and see where the problem is and post back. Also, please post the rest of your code.
     
  3. Offline

    TheBlueBlaster

    So im pretty sure it has something to do with Team team = board.register blah blah blah. But i dont think args[1] is the problem cause i just used a normal string without args[1] and it still didnt work

    Heres Full Code:
    Code:
            if (cmd.getName().equalsIgnoreCase("team")) {
    
                if(!(GameState.isState(GameState.LOBBY))){
                    player.sendMessage(publicPrefix + "§cGame has alreay started!");
                    return true;
                }
                   
                if(args.length == 0){
                    player.sendMessage("§7[§cTeams§7]");
                    player.sendMessage("§e/team create <teamName>");
                    player.sendMessage("§e/team invite <name>");
                    player.sendMessage("§e/team accept <name>");
                    player.sendMessage("§e/team leave");
                    return true;
                }
                if (args[0].equalsIgnoreCase("create")) {
                    if(!(args.length == 2)){
                        player.sendMessage("§cUsage: /team create <name>");
                        return true;
                    }
                    player.sendMessage(publicPrefix + "§aCreated team " + args[1] + "!");
                    player.sendMessage("i work");
                    ScoreboardManager manager = Bukkit.getScoreboardManager();
                    org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard();
                    Team team = board.registerNewTeam(args[1] + "");
                player.sendMessage("you work");
                   
                    team.addPlayer(player);
                   
                }
                if (args[0].equalsIgnoreCase("invite")) {
                    ScoreboardManager manager = Bukkit.getScoreboardManager();
                    org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard();
                     Team playerTeam = board.getPlayerTeam(player);
                    if(!(args.length == 2)){
                        player.sendMessage("§cUsage: /team invite <name>");
                        return true;
                    }
                    if(playerTeam == null){
                        player.sendMessage(publicPrefix + "§cYou do not have a team! Use /team create <teamName> to make one!");
                        return true;
                    }
                    Player targetPlayer = Bukkit.getPlayer(args[1]);
                teamRequests.add(player.getName() + "-" + targetPlayer.getName());
                    player.sendMessage(publicPrefix + "§aInvited " + targetPlayer.getName() + " to your team!");
                    targetPlayer.sendMessage(publicPrefix + "§aYou have been invited to " + player.getName() + "'s team! §6Use /team accept " + player.getName() + " to accept!");
                }
                if (args[0].equalsIgnoreCase("accept")) {
                    if(!(args.length == 2)){
                        player.sendMessage("§cUsage: /team accept <name>");
                        return true;
                    }
                    Player targetPlayer = Bukkit.getPlayer(args[1]);
                    ScoreboardManager manager = Bukkit.getScoreboardManager();
                    org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard();
                    Team team = board.registerNewTeam(args[1]);
                      Team playerTeam = board.getPlayerTeam(targetPlayer);
                    if(playerTeam == null){
                        player.sendMessage(publicPrefix + "§cThis player has not made a team!");
                    }
                    if(teamRequests.contains(player.getName() + "-" + targetPlayer.getName())){
                        teamRequests.remove(player.getName() + "-" + targetPlayer.getName());
                      player.sendMessage(publicPrefix + "§aYou have joined §6Team " + playerTeam.getName() + "§a!");
                        playerTeam.addPlayer(player);
                    }
                }
                if (args[0].equalsIgnoreCase("leave")) {
                    ScoreboardManager manager = Bukkit.getScoreboardManager();
                    org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard();
                      Team playerTeam = board.getPlayerTeam(player);
                    for(Player p : Bukkit.getOnlinePlayers()){
                        if(playerTeam.hasPlayer(p)){
                            playerTeam.removePlayer(p);
                            playerTeam.unregister();
                            p.sendMessage(publicPrefix + "§cTeam has been disbanded because a player has left!");
                        }else{
                            player.sendMessage(publicPrefix + "§cYour not on a team!");
                        }
                    }
                   
                }
            }
     
  4. @TheBlueBlaster
    You should add the team to the player, not the player to the team.
    Player#getScoreboard().createTeam

    Or either player.setScoreboard(board);
     
  5. Offline

    TheBlueBlaster

    Um player,getScoreboard().createTeam() doesnt exsist??

    And where would i put player.setScoreboard(board);
     
  6. @TheBlueBlaster that's not a method, it's just the idea of it.
    You should add the scoreboard to every player every time they join, and load teams when the server starts
     
  7. Offline

    TheBlueBlaster

    Yeah im totally confused btw its a team create plugin so it cant be used at start of the server

    I tried adding player.setScoreboard(board); at onJoin and after teams are created and it doesnt work.
     
  8. Offline

    TheBlueBlaster

    bump

    bump?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jan 12, 2016
Thread Status:
Not open for further replies.

Share This Page