diff --git a/Spigot-Server-Patches/0532-added-EntityTargetLivingEntityEvent-to-1.16-mobs.patch b/Spigot-Server-Patches/0532-added-EntityTargetLivingEntityEvent-to-1.16-mobs.patch index 9c6a62037f..2fc8f4b530 100644 --- a/Spigot-Server-Patches/0532-added-EntityTargetLivingEntityEvent-to-1.16-mobs.patch +++ b/Spigot-Server-Patches/0532-added-EntityTargetLivingEntityEvent-to-1.16-mobs.patch @@ -6,10 +6,10 @@ Subject: [PATCH] added EntityTargetLivingEntityEvent to 1.16 mobs 1.16 added a different behavior system for the new mobs diff --git a/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java b/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java -index d5cceb0672c7724b9d53dd7bf2d323e667c8617c..2a0e951618e45c3e4e171cbb4d987004ae354803 100644 +index 254a4afeed2148fc1a8d698c90ba0b98eda01687..643e996b87acd95d6fecf9a3883a0744f4d223a9 100644 --- a/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java +++ b/src/main/java/net/minecraft/server/BehaviorAttackTargetForget.java -@@ -21,15 +21,22 @@ public class BehaviorAttackTargetForget extends Beha +@@ -26,15 +26,22 @@ public class BehaviorAttackTargetForget extends Beha protected void a(WorldServer worldserver, E e0, long i) { if (a((EntityLiving) e0)) { @@ -37,39 +37,3 @@ index d5cceb0672c7724b9d53dd7bf2d323e667c8617c..2a0e951618e45c3e4e171cbb4d987004 } } -diff --git a/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java b/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java -index 65e746859bede33bc59fd17b4c3defe911df993f..178da19fdc5df330d4128feb831e8fa6a9a5cdc1 100644 ---- a/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java -+++ b/src/main/java/net/minecraft/server/BehaviorAttackTargetSet.java -@@ -26,20 +26,27 @@ public class BehaviorAttackTargetSet extends Behavio - if (!this.b.test(e0)) { - return false; - } else { -- Optional optional = (Optional) this.c.apply(e0); -+ Optional optional = (Optional) this.c.apply(e0); // Paper - decompile error - - return optional.isPresent() && ((EntityLiving) optional.get()).isAlive(); - } - } - - protected void a(WorldServer worldserver, E e0, long i) { -- ((Optional) this.c.apply(e0)).ifPresent((entityliving) -> { -+ ((Optional) this.c.apply(e0)).ifPresent((entityliving) -> { // Paper - decompile error - this.a(e0, entityliving); - }); - } - - private void a(E e0, EntityLiving entityliving) { -- e0.getBehaviorController().setMemory(MemoryModuleType.ATTACK_TARGET, (Object) entityliving); -- e0.getBehaviorController().removeMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE); -+ // Paper start -+ org.bukkit.event.entity.EntityTargetEvent.TargetReason reason = entityliving instanceof EntityHuman ? org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_PLAYER : org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_ENTITY; -+ org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(e0, entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason.CLOSEST_ENTITY); -+ if (!event.isCancelled()) { -+ EntityLiving target = event.getTarget() != null ? ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle() : null; -+ e0.getBehaviorController().setMemory(MemoryModuleType.ATTACK_TARGET, target); // Paper - decompile error -+ e0.getBehaviorController().removeMemory(MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE); -+ } -+ // Paper end - } - } diff --git a/work/CraftBukkit b/work/CraftBukkit index 52fd29c0dc..c3a22e7850 160000 --- a/work/CraftBukkit +++ b/work/CraftBukkit @@ -1 +1 @@ -Subproject commit 52fd29c0dca28c0e7d75fc462bd5b6f59a42a85f +Subproject commit c3a22e7850f7b6c41163676a154b22c61952b2a9