- Баллы
- 76
- Имя в Minecraft
- Prost
Помогите нужно достать команду(Team), из события PlayerJoinEvent, и вывести всех игроков этой командой как онлайн. Пытался мудрить сам, но ничего не вышло. Вот код:
Код:
public class JediScoreBoard
implements Listener
{
List<Scoreboard> sb = new ArrayList<Scoreboard>();
static ArrayList<Player> jedi = new ArrayList<Player>();
static ArrayList<Player> sith = new ArrayList<Player>();
@EventHandler
public void onJoin(PlayerJoinEvent e, Objective stats)
{
Player p = e.getPlayer();
Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
this.sb.add(sb);
Team jedi = sb.registerNewTeam("Jedi");
jedi.setPrefix(ChatColor.DARK_AQUA + " ");
Team sith = sb.registerNewTeam("Sith");
sith.setPrefix(ChatColor.DARK_RED + " ");
p.setScoreboard(sb);
for (Scoreboard board : this.sb) {
if (Levels.getFaction(p).equalsIgnoreCase("Jedi")) { //Проверка из какой фракции игрок.
board.getTeam("Jedi").addPlayer(p);
} else if (Levels.getFaction(p).equalsIgnoreCase("Sith")) { //Проверка из какой фракции игрок.
board.getTeam("Sith").addPlayer(p);
}
for (Player player : Bukkit.getOnlinePlayers()) {
if (Levels.getFaction(player).equalsIgnoreCase("Jedi")) { //Проверка из какой фракции игрок.
(jedi).addPlayer(player);
} else if (Levels.getFaction(player).equalsIgnoreCase("Sith")) { //Проверка из какой фракции игрок.
(sith).addPlayer(player);
}
}
}
updateScoreboard(p);
}
@SuppressWarnings("deprecation")
public static void updateScoreboard(Player p)
{
p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
Scoreboard playerBoard = p.getScoreboard();
for (Objective obj : playerBoard.getObjectives()) {
obj.unregister();
}
Objective stats = playerBoard.registerNewObjective("Stats", "dummy");
stats.setDisplaySlot(DisplaySlot.SIDEBAR);
stats.setDisplayName(ChatColor.DARK_GREEN + "UniWars");
stats.getScore(ChatColor.GOLD + "Сторона").setScore(17);
if (!Levels.faction.containsKey(p.getName())) {
stats.getScore(ChatColor.GRAY +"-").setScore(16);
} else if (((String)Levels.faction.get(p.getName())).equalsIgnoreCase("Jedi")) { //Проверка из какой фракции игрок.
stats.getScore(ChatColor.DARK_AQUA + "Светлая").setScore(16);
} else if (((String)Levels.faction.get(p.getName())).equalsIgnoreCase("Sith")) { //Проверка из какой фракции игрок.
stats.getScore(ChatColor.DARK_RED + "Темная").setScore(16);
}
stats.getScore(ChatColor.DARK_GRAY +" ").setScore(15);
stats.getScore(ChatColor.GOLD + "Баланс").setScore(9);
stats.getScore(Main.econ.getBalance(p.getName()) + " ").setScore(8);
stats.getScore("").setScore(7);
stats.getScore(ChatColor.GOLD + "Убийств").setScore(6);
stats.getScore(Levels.kills.get(p.getName()) + "").setScore(5);
stats.getScore(" ").setScore(4);
stats.getScore(ChatColor.GOLD + "Смерти").setScore(3);
stats.getScore(Levels.deaths.get(p.getName()) + " ").setScore(2);
if (Levels.getFaction(p).equalsIgnoreCase("Jedi")) { //Проверка из какой фракции игрок.
stats.getScore(playerBoard.getTeam("Jedi").getPlayers().toArray() + " ").setScore(1);
p.setPlayerListName(jedi + p.getName());
}
if (Levels.getFaction(p).equalsIgnoreCase("Sith")) { //Проверка из какой фракции игрок.
stats.getScore(playerBoard.getTeam("Jedi").getPlayers().toArray() + " ").setScore(1);
p.setPlayerListName((Team)sith + p.getName());
}
}
}