aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0828-Add-various-missing-EntityDropItemEvent-calls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0828-Add-various-missing-EntityDropItemEvent-calls.patch')
-rw-r--r--patches/server/0828-Add-various-missing-EntityDropItemEvent-calls.patch88
1 files changed, 88 insertions, 0 deletions
diff --git a/patches/server/0828-Add-various-missing-EntityDropItemEvent-calls.patch b/patches/server/0828-Add-various-missing-EntityDropItemEvent-calls.patch
new file mode 100644
index 0000000000..c41f44844d
--- /dev/null
+++ b/patches/server/0828-Add-various-missing-EntityDropItemEvent-calls.patch
@@ -0,0 +1,88 @@
+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 0faf4c288cc9847fa72f2f2d98f55d552169524e..aa9fa4afe80fad145d94406f26dda2341da87dbe 100644
+--- a/src/main/java/net/minecraft/world/entity/Entity.java
++++ b/src/main/java/net/minecraft/world/entity/Entity.java
+@@ -2693,6 +2693,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 2f62498432bc90cbbc3f206dca41bb276f46f247..c528cb7c18650863eaf8e2c6c0d9276c02712cc9 100644
+--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
++++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
+@@ -597,7 +597,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 74c5eec21fe447c525e204b504f40d0d363039bb..e21bf5b02a4d9e6e23ffd42a1da8a3a5f2ac05db 100644
+--- a/src/main/java/net/minecraft/world/entity/animal/Fox.java
++++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java
+@@ -509,14 +509,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 3ec2f590dfe9410f1a9d2afb530eebfcce917798..363892e0c26bab89d2abaa44d8736e2fd84d292f 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
+@@ -357,8 +357,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.
+ }
+ }
+
+diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+index 1d9913cbc7fd0c6e29278b02c38703b52af1245b..36b3945832733b5ad66d25aa3a31335234d2acff 100644
+--- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
++++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+@@ -352,8 +352,9 @@ public class Sniffer extends Animal {
+
+ entityitem.setDefaultPickUpDelay();
+ this.finalizeSpawnChildFromBreeding(world, other, (AgeableMob) null);
++ if (this.spawnAtLocation(entityitem) != null) { // Paper - call EntityDropItemEvent
+ this.playSound(SoundEvents.SNIFFER_EGG_PLOP, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 0.5F);
+- world.addFreshEntity(entityitem);
++ } // Paper
+ }
+
+ @Override