mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
30 lines
1.7 KiB
Diff
30 lines
1.7 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Bjarne Koll <git@lynxplay.dev>
|
||
|
Date: Fri, 4 Aug 2023 15:53:36 +0200
|
||
|
Subject: [PATCH] Only erase allay memory on non-item targets
|
||
|
|
||
|
Spigot incorrectly instanceOf checks the EntityTargetEvent#getTarget
|
||
|
against the internal ItemEntity type and removes the nearest wanted item
|
||
|
memory if said instanceOf check fails, (which is always the case)
|
||
|
causing allays to behave differently as they constantly loose their
|
||
|
target item.
|
||
|
|
||
|
This commit fixes the faulty behaviour by instance performing a check
|
||
|
against the CraftItem type.
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/GoToWantedItem.java b/src/main/java/net/minecraft/world/entity/ai/behavior/GoToWantedItem.java
|
||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||
|
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/GoToWantedItem.java
|
||
|
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/GoToWantedItem.java
|
||
|
@@ -0,0 +0,0 @@ public class GoToWantedItem {
|
||
|
if (event.isCancelled()) {
|
||
|
return false;
|
||
|
}
|
||
|
- if (!(event.getTarget() instanceof ItemEntity)) {
|
||
|
+ if (!(event.getTarget() instanceof org.bukkit.craftbukkit.entity.CraftItem)) { // Paper - only erase allay memory on non-item targets
|
||
|
memoryaccessor2.erase();
|
||
|
+ return false; // Paper - only erase allay memory on non-item targets
|
||
|
}
|
||
|
|
||
|
entityitem = (ItemEntity) ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle();
|