diff options
-rw-r--r-- | src/main/java/net/minecraft/server/EntityItem.java | 11 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java | 13 |
2 files changed, 22 insertions, 2 deletions
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java index d314cef9..40c148ca 100644 --- a/src/main/java/net/minecraft/server/EntityItem.java +++ b/src/main/java/net/minecraft/server/EntityItem.java @@ -1,6 +1,9 @@ package net.minecraft.server; -import org.bukkit.event.player.PlayerPickupItemEvent; // CraftBukkit +// CraftBukkit start +import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.event.player.PlayerPickupItemEvent; +// CraftBukkit End public class EntityItem extends Entity { @@ -83,6 +86,12 @@ public class EntityItem extends Entity { ++this.e; ++this.b; if (this.b >= 6000) { + // CraftBukkit start + if(CraftEventFactory.callItemDespawnEvent(this).isCancelled()) { + this.b = 0; + return; + } + // CraftBukkit end this.die(); } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 17438f7c..a5f83428 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -141,7 +141,6 @@ public class CraftEventFactory { /** * Player Interact event */ - public static PlayerInteractEvent callPlayerInteractEvent(EntityHuman who, Action action, ItemStack itemstack) { if (action != Action.LEFT_CLICK_AIR && action != Action.RIGHT_CLICK_AIR) { throw new IllegalArgumentException(); @@ -287,6 +286,18 @@ public class CraftEventFactory { } /** + * ItemDespawnEvent + */ + public static ItemDespawnEvent callItemDespawnEvent(EntityItem entityitem) { + org.bukkit.entity.Entity entity = entityitem.getBukkitEntity(); + + ItemDespawnEvent event = new ItemDespawnEvent(entity, entity.getLocation()); + + ((CraftServer) entity.getServer()).getPluginManager().callEvent(event); + return event; + } + + /** * BlockFadeEvent */ public static BlockFadeEvent callBlockFadeEvent(Block block, int type) { |