From bfc5f88c1e7d5fbe91a141aa18e6491fafd2fd92 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 23 Dec 2012 17:09:40 +1100 Subject: [PATCH] Address BUKKIT-3286 by firing the inventory close event when a secondary container is closed due to the player entity being destroyed. This covers all edge cases such as server stop / player kick / player quit. --- src/main/java/net/minecraft/server/EntityHuman.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index bfcb6ce..552a013 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -5,11 +5,13 @@ import java.util.Iterator; import java.util.List; // CraftBukkit start +import org.bukkit.Bukkit; import org.bukkit.craftbukkit.entity.CraftHumanEntity; import org.bukkit.craftbukkit.entity.CraftItem; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.entity.Player; import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; import org.bukkit.event.player.PlayerDropItemEvent; @@ -941,6 +943,10 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen super.die(); this.defaultContainer.b(this); if (this.activeContainer != null) { + // CraftBukkit start + InventoryCloseEvent event = new InventoryCloseEvent(this.activeContainer.getBukkitView()); + Bukkit.getServer().getPluginManager().callEvent(event); + // CraftBukkit end this.activeContainer.b(this); } } -- 1.8.1-rc2