diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2013-05-02 06:05:54 -0500 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2013-05-02 06:28:51 -0500 |
commit | 401a6809be71112f35f811fedb79e1210c87a656 (patch) | |
tree | 7f0d7067f91972743d37a55839d42ef2aab756c5 /src/main/java/net/minecraft/server/PlayerList.java | |
parent | 75641a607e6878dfd98f808e4f7b01441c3dea18 (diff) | |
download | craftbukkit-401a6809be71112f35f811fedb79e1210c87a656.tar craftbukkit-401a6809be71112f35f811fedb79e1210c87a656.tar.gz craftbukkit-401a6809be71112f35f811fedb79e1210c87a656.tar.lz craftbukkit-401a6809be71112f35f811fedb79e1210c87a656.tar.xz craftbukkit-401a6809be71112f35f811fedb79e1210c87a656.zip |
Improve InventoryCloseEvent handling. Fixes BUKKIT-3286
Currently there are several cases where a player will have their inventory
screen closed client side but we will not call an event. To correct this
we call the event when the server is the cause of the inventory closing
instead of just when the client is the cause. We also ensure the server is
closing the inventory reliably so we get the events. Additionally this
commit also calls the event when a player disconnects which will handle
kicks, quits, and server shutdown.
Diffstat (limited to 'src/main/java/net/minecraft/server/PlayerList.java')
-rw-r--r-- | src/main/java/net/minecraft/server/PlayerList.java | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java index 9e574bec..b7e327bc 100644 --- a/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java @@ -250,6 +250,8 @@ public abstract class PlayerList { if (entityplayer.playerConnection.disconnected) return null; // CraftBukkit - exploitsies fix // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it + org.bukkit.craftbukkit.event.CraftEventFactory.handleInventoryCloseEvent(entityplayer); + PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(this.cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " left the game."); this.cserver.getPluginManager().callEvent(playerQuitEvent); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); |