package net.minecraft.scoreboard; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet206SetObjective; import net.minecraft.network.packet.Packet207SetScore; import net.minecraft.network.packet.Packet208SetDisplayObjective; import net.minecraft.network.packet.Packet209SetPlayerTeam; import net.minecraft.server.MinecraftServer; public class ServerScoreboard extends Scoreboard { private final MinecraftServer field_96555_a; private final Set field_96553_b = new HashSet(); private ScoreboardSaveData field_96554_c; public ServerScoreboard(MinecraftServer par1MinecraftServer) { this.field_96555_a = par1MinecraftServer; } public void func_96536_a(Score par1Score) { super.func_96536_a(par1Score); if (this.field_96553_b.contains(par1Score.func_96645_d())) { this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet207SetScore(par1Score, 0)); } this.func_96551_b(); } public void func_96516_a(String par1Str) { super.func_96516_a(par1Str); this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet207SetScore(par1Str)); this.func_96551_b(); } public void func_96530_a(int par1, ScoreObjective par2ScoreObjective) { ScoreObjective scoreobjective1 = this.func_96539_a(par1); super.func_96530_a(par1, par2ScoreObjective); if (scoreobjective1 != par2ScoreObjective && scoreobjective1 != null) { if (this.func_96552_h(scoreobjective1) > 0) { this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet208SetDisplayObjective(par1, par2ScoreObjective)); } else { this.func_96546_g(scoreobjective1); } } if (par2ScoreObjective != null) { if (this.field_96553_b.contains(par2ScoreObjective)) { this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet208SetDisplayObjective(par1, par2ScoreObjective)); } else { this.func_96549_e(par2ScoreObjective); } } this.func_96551_b(); } public void func_96521_a(String par1Str, ScorePlayerTeam par2ScorePlayerTeam) { super.func_96521_a(par1Str, par2ScorePlayerTeam); this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet209SetPlayerTeam(par2ScorePlayerTeam, Arrays.asList(new String[] {par1Str}), 3)); this.func_96551_b(); } /** * Removes the given username from the given ScorePlayerTeam. If the player is not on the team then an * IllegalStateException is thrown. */ public void removePlayerFromTeam(String par1Str, ScorePlayerTeam par2ScorePlayerTeam) { super.removePlayerFromTeam(par1Str, par2ScorePlayerTeam); this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet209SetPlayerTeam(par2ScorePlayerTeam, Arrays.asList(new String[] {par1Str}), 4)); this.func_96551_b(); } public void func_96522_a(ScoreObjective par1ScoreObjective) { super.func_96522_a(par1ScoreObjective); this.func_96551_b(); } public void func_96532_b(ScoreObjective par1ScoreObjective) { super.func_96532_b(par1ScoreObjective); if (this.field_96553_b.contains(par1ScoreObjective)) { this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet206SetObjective(par1ScoreObjective, 2)); } this.func_96551_b(); } public void func_96533_c(ScoreObjective par1ScoreObjective) { super.func_96533_c(par1ScoreObjective); if (this.field_96553_b.contains(par1ScoreObjective)) { this.func_96546_g(par1ScoreObjective); } this.func_96551_b(); } public void func_96523_a(ScorePlayerTeam par1ScorePlayerTeam) { super.func_96523_a(par1ScorePlayerTeam); this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet209SetPlayerTeam(par1ScorePlayerTeam, 0)); this.func_96551_b(); } public void func_96538_b(ScorePlayerTeam par1ScorePlayerTeam) { super.func_96538_b(par1ScorePlayerTeam); this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet209SetPlayerTeam(par1ScorePlayerTeam, 2)); this.func_96551_b(); } public void func_96513_c(ScorePlayerTeam par1ScorePlayerTeam) { super.func_96513_c(par1ScorePlayerTeam); this.field_96555_a.getConfigurationManager().sendPacketToAllPlayers(new Packet209SetPlayerTeam(par1ScorePlayerTeam, 1)); this.func_96551_b(); } public void func_96547_a(ScoreboardSaveData par1ScoreboardSaveData) { this.field_96554_c = par1ScoreboardSaveData; } protected void func_96551_b() { if (this.field_96554_c != null) { this.field_96554_c.markDirty(); } } public List func_96550_d(ScoreObjective par1ScoreObjective) { ArrayList arraylist = new ArrayList(); arraylist.add(new Packet206SetObjective(par1ScoreObjective, 0)); for (int i = 0; i < 3; ++i) { if (this.func_96539_a(i) == par1ScoreObjective) { arraylist.add(new Packet208SetDisplayObjective(i, par1ScoreObjective)); } } Iterator iterator = this.func_96534_i(par1ScoreObjective).iterator(); while (iterator.hasNext()) { Score score = (Score)iterator.next(); arraylist.add(new Packet207SetScore(score, 0)); } return arraylist; } public void func_96549_e(ScoreObjective par1ScoreObjective) { List list = this.func_96550_d(par1ScoreObjective); Iterator iterator = this.field_96555_a.getConfigurationManager().playerEntityList.iterator(); while (iterator.hasNext()) { EntityPlayerMP entityplayermp = (EntityPlayerMP)iterator.next(); Iterator iterator1 = list.iterator(); while (iterator1.hasNext()) { Packet packet = (Packet)iterator1.next(); entityplayermp.playerNetServerHandler.sendPacketToPlayer(packet); } } this.field_96553_b.add(par1ScoreObjective); } public List func_96548_f(ScoreObjective par1ScoreObjective) { ArrayList arraylist = new ArrayList(); arraylist.add(new Packet206SetObjective(par1ScoreObjective, 1)); for (int i = 0; i < 3; ++i) { if (this.func_96539_a(i) == par1ScoreObjective) { arraylist.add(new Packet208SetDisplayObjective(i, par1ScoreObjective)); } } return arraylist; } public void func_96546_g(ScoreObjective par1ScoreObjective) { List list = this.func_96548_f(par1ScoreObjective); Iterator iterator = this.field_96555_a.getConfigurationManager().playerEntityList.iterator(); while (iterator.hasNext()) { EntityPlayerMP entityplayermp = (EntityPlayerMP)iterator.next(); Iterator iterator1 = list.iterator(); while (iterator1.hasNext()) { Packet packet = (Packet)iterator1.next(); entityplayermp.playerNetServerHandler.sendPacketToPlayer(packet); } } this.field_96553_b.remove(par1ScoreObjective); } public int func_96552_h(ScoreObjective par1ScoreObjective) { int i = 0; for (int j = 0; j < 3; ++j) { if (this.func_96539_a(j) == par1ScoreObjective) { ++i; } } return i; } }