--- a/net/minecraft/server/ServerScoreboard.java +++ b/net/minecraft/server/ServerScoreboard.java @@ -37,11 +37,10 @@ } @Override - @Override - protected void onScoreChanged(ScoreHolder scoreholder, Objective objective, Score score) { - super.onScoreChanged(scoreholder, objective, score); - if (this.trackedObjectives.contains(objective)) { - this.server.getPlayerList().broadcastAll(new ClientboundSetScorePacket(scoreholder.getScoreboardName(), objective.getName(), score.value(), score.display(), score.numberFormat())); + protected void onScoreChanged(ScoreHolder scoreholder, Objective scoreboardobjective, Score scoreboardscore) { + super.onScoreChanged(scoreholder, scoreboardobjective, scoreboardscore); + if (this.trackedObjectives.contains(scoreboardobjective)) { + this.broadcastAll(new ClientboundSetScorePacket(scoreholder.getScoreboardName(), scoreboardobjective.getName(), scoreboardscore.value(), scoreboardscore.display(), scoreboardscore.numberFormat())); // CraftBukkit } this.setDirty(); @@ -58,16 +55,15 @@ @Override public void onPlayerRemoved(ScoreHolder scoreholder) { super.onPlayerRemoved(scoreholder); - this.server.getPlayerList().broadcastAll(new ClientboundResetScorePacket(scoreholder.getScoreboardName(), (String) null)); + this.broadcastAll(new ClientboundResetScorePacket(scoreholder.getScoreboardName(), (String) null)); // CraftBukkit this.setDirty(); } @Override - @Override - public void onPlayerScoreRemoved(ScoreHolder scoreholder, Objective objective) { - super.onPlayerScoreRemoved(scoreholder, objective); - if (this.trackedObjectives.contains(objective)) { - this.server.getPlayerList().broadcastAll(new ClientboundResetScorePacket(scoreholder.getScoreboardName(), objective.getName())); + public void onPlayerScoreRemoved(ScoreHolder scoreholder, Objective scoreboardobjective) { + super.onPlayerScoreRemoved(scoreholder, scoreboardobjective); + if (this.trackedObjectives.contains(scoreboardobjective)) { + this.broadcastAll(new ClientboundResetScorePacket(scoreholder.getScoreboardName(), scoreboardobjective.getName())); // CraftBukkit } this.setDirty(); @@ -78,18 +73,18 @@ public void setDisplayObjective(DisplaySlot displayslot, @Nullable Objective objective) { Objective objective1 = this.getDisplayObjective(displayslot); - super.setDisplayObjective(displayslot, objective); - if (objective1 != objective && objective1 != null) { - if (this.getObjectiveDisplaySlotCount(objective1) > 0) { - this.server.getPlayerList().broadcastAll(new ClientboundSetDisplayObjectivePacket(displayslot, objective)); + super.setDisplayObjective(displayslot, scoreboardobjective); + if (scoreboardobjective1 != scoreboardobjective && scoreboardobjective1 != null) { + if (this.getObjectiveDisplaySlotCount(scoreboardobjective1) > 0) { + this.broadcastAll(new ClientboundSetDisplayObjectivePacket(displayslot, scoreboardobjective)); // CraftBukkit } else { this.stopTrackingObjective(objective1); } } - if (objective != null) { - if (this.trackedObjectives.contains(objective)) { - this.server.getPlayerList().broadcastAll(new ClientboundSetDisplayObjectivePacket(displayslot, objective)); + if (scoreboardobjective != null) { + if (this.trackedObjectives.contains(scoreboardobjective)) { + this.broadcastAll(new ClientboundSetDisplayObjectivePacket(displayslot, scoreboardobjective)); // CraftBukkit } else { this.startTrackingObjective(objective); } @@ -99,10 +94,9 @@ } @Override - @Override - public boolean addPlayerToTeam(String s, PlayerTeam playerteam) { - if (super.addPlayerToTeam(s, playerteam)) { - this.server.getPlayerList().broadcastAll(ClientboundSetPlayerTeamPacket.createPlayerPacket(playerteam, s, ClientboundSetPlayerTeamPacket.Action.ADD)); + public boolean addPlayerToTeam(String playerName, PlayerTeam team) { + if (super.addPlayerToTeam(playerName, team)) { + this.broadcastAll(ClientboundSetPlayerTeamPacket.createPlayerPacket(team, playerName, ClientboundSetPlayerTeamPacket.a.ADD)); // CraftBukkit this.setDirty(); return true; } else { @@ -111,10 +105,9 @@ } @Override - @Override - public void removePlayerFromTeam(String s, PlayerTeam playerteam) { - super.removePlayerFromTeam(s, playerteam); - this.server.getPlayerList().broadcastAll(ClientboundSetPlayerTeamPacket.createPlayerPacket(playerteam, s, ClientboundSetPlayerTeamPacket.Action.REMOVE)); + public void removePlayerFromTeam(String username, PlayerTeam playerTeam) { + super.removePlayerFromTeam(username, playerTeam); + this.broadcastAll(ClientboundSetPlayerTeamPacket.createPlayerPacket(playerTeam, username, ClientboundSetPlayerTeamPacket.a.REMOVE)); // CraftBukkit this.setDirty(); } @@ -130,7 +121,7 @@ public void onObjectiveChanged(Objective objective) { super.onObjectiveChanged(objective); if (this.trackedObjectives.contains(objective)) { - this.server.getPlayerList().broadcastAll(new ClientboundSetObjectivePacket(objective, 2)); + this.broadcastAll(new ClientboundSetObjectivePacket(objective, 2)); // CraftBukkit } this.setDirty(); @@ -148,26 +138,23 @@ } @Override - @Override - public void onTeamAdded(PlayerTeam playerteam) { - super.onTeamAdded(playerteam); - this.server.getPlayerList().broadcastAll(ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(playerteam, true)); + public void onTeamAdded(PlayerTeam playerTeam) { + super.onTeamAdded(playerTeam); + this.broadcastAll(ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(playerTeam, true)); // CraftBukkit this.setDirty(); } @Override - @Override - public void onTeamChanged(PlayerTeam playerteam) { - super.onTeamChanged(playerteam); - this.server.getPlayerList().broadcastAll(ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(playerteam, false)); + public void onTeamChanged(PlayerTeam playerTeam) { + super.onTeamChanged(playerTeam); + this.broadcastAll(ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(playerTeam, false)); // CraftBukkit this.setDirty(); } @Override - @Override - public void onTeamRemoved(PlayerTeam playerteam) { - super.onTeamRemoved(playerteam); - this.server.getPlayerList().broadcastAll(ClientboundSetPlayerTeamPacket.createRemovePacket(playerteam)); + public void onTeamRemoved(PlayerTeam playerTeam) { + super.onTeamRemoved(playerTeam); + this.broadcastAll(ClientboundSetPlayerTeamPacket.createRemovePacket(playerTeam)); // CraftBukkit this.setDirty(); } @@ -217,7 +204,8 @@ Iterator iterator = this.server.getPlayerList().getPlayers().iterator(); while (iterator.hasNext()) { - ServerPlayer serverplayer = (ServerPlayer) iterator.next(); + ServerPlayer entityplayer = (ServerPlayer) iterator.next(); + if (entityplayer.getBukkitEntity().getScoreboard().getHandle() != this) continue; // CraftBukkit - Only players on this board Iterator iterator1 = list.iterator(); while (iterator1.hasNext()) { @@ -253,7 +241,8 @@ Iterator iterator = this.server.getPlayerList().getPlayers().iterator(); while (iterator.hasNext()) { - ServerPlayer serverplayer = (ServerPlayer) iterator.next(); + ServerPlayer entityplayer = (ServerPlayer) iterator.next(); + if (entityplayer.getBukkitEntity().getScoreboard().getHandle() != this) continue; // CraftBukkit - Only players on this board Iterator iterator1 = list.iterator(); while (iterator1.hasNext()) { @@ -298,7 +287,15 @@ return this.createData().load(compoundtag); } - public static enum Method { + // CraftBukkit start - Send to players + private void broadcastAll(Packet packet) { + for (ServerPlayer entityplayer : (List) this.server.getPlayerList().players) { + if (entityplayer.getBukkitEntity().getScoreboard().getHandle() == this) { + entityplayer.connection.send(packet); + } + } + } + // CraftBukkit end CHANGE, REMOVE;