Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 11:00:06 +01:00
a73ed9572e
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: b76ceb4f5 PR-1235: Move EntityType return to base Entity class e795d7490 SPIGOT-7458: Exception when Entity CommandSender executes Vanilla command 46c7fc3b1 SPIGOT-7452: Player#openSign cannot edit d91e5aa0b SPIGOT-7447: Rewrite --forceUpgrade to minimise diff and properly handle CraftBukkit world layout 921ae06d6 Revert "SPIGOT-7447: Fix --forceUpgrade" Spigot Changes: 94e187b5 Rebuild patches 3bce7935 SPIGOT-7091: Update bungeecord-chat
30 Zeilen
1.7 KiB
Diff
30 Zeilen
1.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Bjarne Koll <lynxplay101@gmail.com>
|
|
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 bd9aa4a5443da862be3403c1941113373741a87c..2f92eb39cde7b30a894db347ca85a506d880411e 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
|
|
@@ -35,8 +35,9 @@ 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();
|