summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/EntityItem.java11
-rw-r--r--src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java13
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) {