aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/unapplied/server/0748-EntityPickupItemEvent-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/unapplied/server/0748-EntityPickupItemEvent-fixes.patch')
-rw-r--r--patches/unapplied/server/0748-EntityPickupItemEvent-fixes.patch73
1 files changed, 0 insertions, 73 deletions
diff --git a/patches/unapplied/server/0748-EntityPickupItemEvent-fixes.patch b/patches/unapplied/server/0748-EntityPickupItemEvent-fixes.patch
deleted file mode 100644
index 91c0eac860..0000000000
--- a/patches/unapplied/server/0748-EntityPickupItemEvent-fixes.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Mon, 4 Jul 2022 21:45:36 -0700
-Subject: [PATCH] EntityPickupItemEvent fixes
-
-Fixes double firing of the event in PiglinAi
-
-Fixes cancelling the event for piglins still triggering the
-advancement trigger
-
-Fires the event when a Raider tries to pick up a raid banner
-to become raid leader.
-
-diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
-index d2dfa49e124460f4762b950f9ded106d2ec15dc2..bc58323801ee16fe9b63c21332144ec002a902f2 100644
---- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
-+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
-@@ -412,7 +412,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
-
- @Override
- protected void pickUpItem(ItemEntity item) {
-- this.onItemPickup(item);
-+ // this.onItemPickup(item); // Paper - EntityPickupItemEvent fixes; call in PiglinAi#pickUpItem after EntityPickupItemEvent is fired
- PiglinAi.pickUpItem(this, item);
- }
-
-diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
-index d3d50ec0f4466464c048449d8a844569c447d59b..b9810a1f6ac91ae9631dd1ebc225f009d91b7845 100644
---- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
-+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
-@@ -242,11 +242,16 @@ public class PiglinAi {
- ItemStack itemstack;
-
- // CraftBukkit start
-- if (drop.getItem().is(Items.GOLD_NUGGET) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, 0, false).isCancelled()) {
-+ // Paper start - EntityPickupItemEvent fixes; fix event firing twice
-+ if (drop.getItem().is(Items.GOLD_NUGGET) /* && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, 0, false).isCancelled() */) {
-+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, 0, false).isCancelled()) return;
-+ piglin.onItemPickup(drop); // Paper - moved from Piglin#pickUpItem - call prior to item entity modification
-+ // Paper end - EntityPickupItemEvent fixes
- piglin.take(drop, drop.getItem().getCount());
- itemstack = drop.getItem();
- drop.discard(EntityRemoveEvent.Cause.PICKUP); // CraftBukkit - add Bukkit remove cause
- } else if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(piglin, drop, drop.getItem().getCount() - 1, false).isCancelled()) {
-+ piglin.onItemPickup(drop); // Paper - EntityPickupItemEvent fixes; moved from Piglin#pickUpItem - call prior to item entity modification
- piglin.take(drop, 1);
- itemstack = PiglinAi.removeOneItemFromItemEntity(drop);
- } else {
-@@ -261,7 +266,7 @@ public class PiglinAi {
- } else if (PiglinAi.isFood(itemstack) && !PiglinAi.hasEatenRecently(piglin)) {
- PiglinAi.eat(piglin);
- } else {
-- boolean flag = !piglin.equipItemIfPossible(itemstack, drop).equals(ItemStack.EMPTY); // CraftBukkit
-+ boolean flag = !piglin.equipItemIfPossible(itemstack, null).equals(ItemStack.EMPTY); // CraftBukkit // Paper - pass null item entity to prevent duplicate pickup item event call - called above.
-
- if (!flag) {
- PiglinAi.putInInventory(piglin, itemstack);
-diff --git a/src/main/java/net/minecraft/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
-index 174d246b0a4d0fc9d769aad08da627ca8487bdf2..bbf21ea433f9e3963aac0ede597ed8d3c8e50ed8 100644
---- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
-+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
-@@ -225,6 +225,11 @@ public abstract class Raider extends PatrollingMonster {
- boolean flag = this.hasActiveRaid() && this.getCurrentRaid().getLeader(this.getWave()) != null;
-
- if (this.hasActiveRaid() && !flag && ItemStack.matches(itemstack, Raid.getLeaderBannerInstance(this.registryAccess().lookupOrThrow(Registries.BANNER_PATTERN)))) {
-+ // Paper start - EntityPickupItemEvent fixes
-+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(this, item, 0, false).isCancelled()) {
-+ return;
-+ }
-+ // Paper end - EntityPickupItemEvent fixes
- EquipmentSlot enumitemslot = EquipmentSlot.HEAD;
- ItemStack itemstack1 = this.getItemBySlot(enumitemslot);
- double d0 = (double) this.getEquipmentDropChance(enumitemslot);