13
0
geforkt von Mirrors/Paper

Check connection status before setting scoreboard. Fixes BUKKIT-4064

Two connection status checks were added to setting a scoreboard for a
player. The first checks to see if a player has logged in yet, which
implicates the ability to receive packets. The second checks to affirm
that the CraftPlayer reference is still to a logged in player; setting
it while not logged in would maintain a stale player reference in the
scoreboard manager.

By: Wesley Wolfe <weswolf@aol.com>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2013-04-12 21:31:24 -05:00
Ursprung 1ec94b52c1
Commit e8b9ca83cb

Datei anzeigen

@ -983,6 +983,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setScoreboard(Scoreboard scoreboard) {
Validate.notNull(scoreboard, "Scoreboard cannot be null");
PlayerConnection playerConnection = getHandle().playerConnection;
if (playerConnection == null) {
throw new IllegalStateException("Cannot set scoreboard yet");
}
if (playerConnection.disconnected) {
throw new IllegalStateException("Cannot set scoreboard for invalid CraftPlayer");
}
this.server.getScoreboardManager().setPlayerBoard(this, scoreboard);
}
}