From 20e38dca99efd7b4f57c71df8545cc994fc5267a Mon Sep 17 00:00:00 2001 From: LexManos Date: Fri, 17 Aug 2012 13:31:47 -0700 Subject: [PATCH] Fix EntityItemPickupEvent 'pop' sound spamming. --- .../event/entity/player/EntityItemPickupEvent.java | 11 +++++++++++ .../common/net/minecraft/src/EntityItem.java.patch | 11 +++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) 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);