diff --git a/leaf-server/minecraft-patches/features/0233-Async-target-finding.patch b/leaf-server/minecraft-patches/features/0233-Async-target-finding.patch index 9098b25d..7696aa0f 100644 --- a/leaf-server/minecraft-patches/features/0233-Async-target-finding.patch +++ b/leaf-server/minecraft-patches/features/0233-Async-target-finding.patch @@ -1899,44 +1899,6 @@ index 7ff380212ce5e56e0e58e5f52f8c75bda5061ef0..c21519490433dfb2da3435afe757df01 } static class DrownedGoToWaterGoal extends Goal { -diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java -index 58887b2cc931892f96793edd7a7d1db22cb8686c..ac55224190c97e5785a295639154e80ac6054de9 100644 ---- a/net/minecraft/world/entity/monster/EnderMan.java -+++ b/net/minecraft/world/entity/monster/EnderMan.java -@@ -588,10 +588,33 @@ public class EnderMan extends Monster implements NeutralMob { - - @Override - public boolean canUse() { -+ // Leaf start - Async target finding -+ if (org.dreeam.leaf.config.modules.async.AsyncTargetFinding.searchEntity) { -+ if (poll()) { -+ return true; -+ } -+ final EnderMan enderman = this.enderman; -+ final var ctx = enderman.getGoalCtx(); -+ if (!ctx.state) return false; -+ final var cond = this.startAggroTargetConditions.range(this.getFollowDistance()).copy(); -+ ctx.wake = world -> world.getNearestPlayer(cond, enderman); -+ return false; -+ } -+ // Leaf end - Async target finding - this.pendingTarget = getServerLevel(this.enderman).getNearestPlayer(this.startAggroTargetConditions.range(this.getFollowDistance()), this.enderman); - return this.pendingTarget != null; - } - -+ // Leaf start - Async target finding -+ protected boolean poll() { -+ if (!(this.mob.getGoalCtx().result() instanceof Player player)) return false; -+ var serverLevel = getServerLevel(this.enderman); -+ if (!this.startAggroTargetConditions.range(this.getFollowDistance()).test(serverLevel, enderman, player)) return false; -+ this.pendingTarget = player; -+ return true; -+ } -+ // Leaf end - Async target finding -+ - @Override - public void start() { - this.aggroTime = this.adjustedTickDelay(5); diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java index e1717b5c854aa81fdd7b7e715d7c3498d9f86072..727effd31644432f9da04ee4e3aaa41ce45d6a2e 100644 --- a/net/minecraft/world/entity/monster/Strider.java