diff --git a/common/net/minecraftforge/event/entity/player/EntityItemPickupEvent.java b/common/net/minecraftforge/event/entity/player/EntityItemPickupEvent.java index f7b5731bfe..5d2156e656 100644 --- a/common/net/minecraftforge/event/entity/player/EntityItemPickupEvent.java +++ b/common/net/minecraftforge/event/entity/player/EntityItemPickupEvent.java @@ -9,10 +9,21 @@ import net.minecraftforge.event.Cancelable; public class EntityItemPickupEvent extends PlayerEvent { public final EntityItem item; + private boolean handled = false; public EntityItemPickupEvent(EntityPlayer player, EntityItem item) { super(player); this.item = item; } + + public boolean isHandled() + { + return handled; + } + + public void setHandled() + { + handled = true; + } } diff --git a/patches/common/net/minecraft/src/EntityItem.java.patch b/patches/common/net/minecraft/src/EntityItem.java.patch index 7f8139bcda..e3f34e2ac3 100644 --- a/patches/common/net/minecraft/src/EntityItem.java.patch +++ b/patches/common/net/minecraft/src/EntityItem.java.patch @@ -10,14 +10,17 @@ public class EntityItem extends Entity { -@@ -238,6 +241,23 @@ +@@ -238,6 +241,26 @@ { int var2 = this.item.stackSize; + EntityItemPickupEvent event = new EntityItemPickupEvent(par1EntityPlayer, this); -+ MinecraftForge.EVENT_BUS.post(event); -+ -+ if (delayBeforeCanPickup == 0 && (!event.isCanceled() || item.stackSize <= 0)) ++ if (MinecraftForge.EVENT_BUS.post(event)) ++ { ++ return; ++ } ++ ++ if (delayBeforeCanPickup == 0 && (event.isHandled() || item.stackSize <= 0)) + { + //FML Notify pickup + worldObj.playSoundAtEntity(this, "random.pop", 0.2F, ((rand.nextFloat() - rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);