diff options
author | mbax <matt@phozop.net> | 2013-03-22 17:21:33 -0400 |
---|---|---|
committer | Wesley Wolfe <weswolf@aol.com> | 2013-04-04 01:13:21 -0500 |
commit | d95a4705cb35319c3456197229be4c6de4cbd521 (patch) | |
tree | 85fbcdb3085314c548698f6e2161501a4e7477e7 /src/main/java/net/minecraft/server/PlayerList.java | |
parent | 5634d9f701acea733fbe8c0f47c60369acfd56cd (diff) | |
download | craftbukkit-d95a4705cb35319c3456197229be4c6de4cbd521.tar craftbukkit-d95a4705cb35319c3456197229be4c6de4cbd521.tar.gz craftbukkit-d95a4705cb35319c3456197229be4c6de4cbd521.tar.lz craftbukkit-d95a4705cb35319c3456197229be4c6de4cbd521.tar.xz craftbukkit-d95a4705cb35319c3456197229be4c6de4cbd521.zip |
Implement Scoreboard API. Adds BUKKIT-3776
This implementation facilitates the correspondence of the Bukkit Scoreboard
API to the internal minecraft implementation.
When the first scoreboard is loaded, the scoreboard manager will be created.
It uses the newly added WeakCollection for handling plugin scoreboard
references to update the respective objectives. When a scoreboard contains no
more active references, it should be garbage collected.
An active reference can be held by a still registered objective, team, and
transitively a score for a still registered objective. An internal reference
will also be kept if a player's specific scoreboard has been set, and will
remain persistent until that player logs out.
A player's specific scoreboard becomes the scoreboard used when determining
team structure for the player's attacking damage and the player's vision.
Diffstat (limited to 'src/main/java/net/minecraft/server/PlayerList.java')
-rw-r--r-- | src/main/java/net/minecraft/server/PlayerList.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java index 464b2509..ed670d92 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -126,7 +126,7 @@ public abstract class PlayerList { } } - protected void a(ScoreboardServer scoreboardserver, EntityPlayer entityplayer) { + public void a(ScoreboardServer scoreboardserver, EntityPlayer entityplayer) { // CraftBukkit - protected -> public HashSet hashset = new HashSet(); Iterator iterator = scoreboardserver.getTeams().iterator(); @@ -277,6 +277,8 @@ public abstract class PlayerList { entityplayer1.playerConnection.sendPacket(packet); } } + // This removes the scoreboard (and player reference) for the specific player in the manager + this.cserver.getScoreboardManager().removePlayer(entityplayer.getBukkitEntity()); return playerQuitEvent.getQuitMessage(); // CraftBukkit end |