SPIGOT-6093: Can't change ItemStack in EntityPickupItemEvent

By: Shane Bee <shanebolenback@me.com>
This commit is contained in:
CraftBukkit/Spigot
2020-08-21 18:46:42 +10:00
parent 9262b0c735
commit 886d2e1504
3 changed files with 20 additions and 13 deletions

View File

@@ -9,7 +9,7 @@
}
public static AttributeProvider.Builder eM() {
@@ -176,6 +176,11 @@
@@ -176,6 +176,12 @@
ItemStack itemstack = entityitem.getItemStack();
if (this.canPickup(itemstack)) {
@@ -17,11 +17,12 @@
+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, entityitem, 0, false).isCancelled()) {
+ return;
+ }
+ itemstack = entityitem.getItemStack(); // update ItemStack from event
+ // CraftBukkit end
this.a(entityitem);
this.setSlot(EnumItemSlot.MAINHAND, itemstack);
this.dropChanceHand[EnumItemSlot.MAINHAND.b()] = 2.0F;
@@ -323,7 +328,7 @@
@@ -323,7 +329,7 @@
@Override
public boolean a() {
@@ -30,7 +31,7 @@
}
@Override
@@ -432,7 +437,7 @@
@@ -432,7 +438,7 @@
@Override
public void c() {
@@ -39,7 +40,7 @@
}
@Override
@@ -451,7 +456,7 @@
@@ -451,7 +457,7 @@
}
if (this.c.isSwimming() && this.c.world.random.nextInt(6) == 0) {