diff options
Diffstat (limited to 'patches/server/0838-Add-various-missing-EntityDropItemEvent-calls.patch')
-rw-r--r-- | patches/server/0838-Add-various-missing-EntityDropItemEvent-calls.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/patches/server/0838-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0838-Add-various-missing-EntityDropItemEvent-calls.patch new file mode 100644 index 0000000000..992dd9d644 --- /dev/null +++ b/patches/server/0838-Add-various-missing-EntityDropItemEvent-calls.patch @@ -0,0 +1,73 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Tue, 20 Jul 2021 21:35:47 -0700 +Subject: [PATCH] Add various missing EntityDropItemEvent calls + + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index af3cdef67ca516cfe85dea7580b3e93554350115..8fef49ba8a46e4490356efdc9dd4ae8ca255421a 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -2644,6 +2644,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + stack.setCount(0); // Paper - destroy this item - if this ever leaks due to game bugs, ensure it doesn't dupe + + entityitem.setDefaultPickUpDelay(); ++ // Paper start ++ return this.spawnAtLocation(entityitem); ++ } ++ } ++ @Nullable ++ public ItemEntity spawnAtLocation(ItemEntity entityitem) { ++ { ++ // Paper end + // CraftBukkit start + EntityDropItemEvent event = new EntityDropItemEvent(this.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity()); + Bukkit.getPluginManager().callEvent(event); +diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +index 5c260a56b1df66069aec59726d61ef382ae29faa..501e6cb4aa83f81c1f657e41f4e7f11d19d46831 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java ++++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java +@@ -593,7 +593,7 @@ public class Dolphin extends WaterAnimal { + float f2 = 0.02F * Dolphin.this.random.nextFloat(); + + entityitem.setDeltaMovement((double) (0.3F * -Mth.sin(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.cos(f1) * f2), (double) (0.3F * Mth.sin(Dolphin.this.getXRot() * 0.017453292F) * 1.5F), (double) (0.3F * Mth.cos(Dolphin.this.getYRot() * 0.017453292F) * Mth.cos(Dolphin.this.getXRot() * 0.017453292F) + Mth.sin(f1) * f2)); +- Dolphin.this.level().addFreshEntity(entityitem); ++ Dolphin.this.spawnAtLocation(entityitem); // Paper - call EntityDropItemEvent + } + } + } +diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java +index 1526ca0063da0962ae781b7aa877d8cf5e1ffd73..167f142d6960867320b90d61db312ebf23e24a48 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java ++++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java +@@ -503,14 +503,14 @@ public class Fox extends Animal implements VariantHolder<Fox.Type> { + entityitem.setPickUpDelay(40); + entityitem.setThrower(this.getUUID()); + this.playSound(SoundEvents.FOX_SPIT, 1.0F, 1.0F); +- this.level().addFreshEntity(entityitem); ++ this.spawnAtLocation(entityitem); // Paper - call EntityDropItemEvent + } + } + + private void dropItemStack(ItemStack stack) { + ItemEntity entityitem = new ItemEntity(this.level(), this.getX(), this.getY(), this.getZ(), stack); + +- this.level().addFreshEntity(entityitem); ++ this.spawnAtLocation(entityitem); // Paper - call EntityDropItemEvent + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +index 316823ea978b9c9b6656a01254c201fdd8c11797..c2111491642dfa29bb85027e137b1a19e3d2d9e6 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java ++++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +@@ -354,8 +354,7 @@ public class Goat extends Animal { + double d2 = (double) Mth.randomBetween(this.random, -0.2F, 0.2F); + ItemEntity entityitem = new ItemEntity(this.level(), vec3d.x(), vec3d.y(), vec3d.z(), itemstack, d0, d1, d2); + +- this.level().addFreshEntity(entityitem); +- return true; ++ return this.spawnAtLocation(entityitem) != null; // Paper - call EntityDropItemEvent by calling spawnAtLocation. + } + } + |