mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-25 01:49:16 +00:00
fix async EndermanAttackPlayerEvent
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user