From 58575d0adc2ccc9e2d4707ebf8868878ed3cbfbf Mon Sep 17 00:00:00 2001 From: hayanesuru Date: Sun, 29 Jun 2025 12:54:39 +0900 Subject: [PATCH] fix HurtByTargetGoal npe --- .../features/0234-Async-target-finding.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/leaf-server/minecraft-patches/features/0234-Async-target-finding.patch b/leaf-server/minecraft-patches/features/0234-Async-target-finding.patch index b17cfa1f..947ab2d1 100644 --- a/leaf-server/minecraft-patches/features/0234-Async-target-finding.patch +++ b/leaf-server/minecraft-patches/features/0234-Async-target-finding.patch @@ -134,7 +134,7 @@ index 9b8d119116b0c3a51d3fe2ff7efb33cc39627cc4..436e73086678e4afbf94f1b7bca9b0c7 // Gale start - Pufferfish - SIMD support diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index ce39571c292c0dd58075e159c343898a374f008a..27da552e2542153a58d6177f592cf30d858c41a9 100644 +index 478e8fa7955b3a084a7b519c0b4cddb399f72758..fc61a7083232148397a0b330ce2a4d70ba38543d 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -175,7 +175,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -1410,7 +1410,7 @@ index fb160a59c873d5c3f2c3d31966ca1a653f1b384d..96ccafe979c5c15e26c12f6ca98ad1e8 return this.potentialTarget != null && !(this.potentialTarget instanceof Player player1 && (player1.isSpectator() || player1.isCreative())); } diff --git a/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java b/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java -index a8ec1d5f4b0fb0ff26a234235b7d8d9c4b4a2a98..412fc8e049ba3763314ec2a56dce378cb0e4cc5f 100644 +index a8ec1d5f4b0fb0ff26a234235b7d8d9c4b4a2a98..c2b4bc95ee4cb4167c06556b14656c0fa59051a3 100644 --- a/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java +++ b/net/minecraft/world/entity/ai/goal/target/HurtByTargetGoal.java @@ -73,6 +73,46 @@ public class HurtByTargetGoal extends TargetGoal { @@ -1484,9 +1484,9 @@ index a8ec1d5f4b0fb0ff26a234235b7d8d9c4b4a2a98..412fc8e049ba3763314ec2a56dce378c + // Leaf start - Async target finding + public void poll() { -+ if (!(this.mob.getGoalCtx().result() instanceof List toAlert)) return; ++ if (!(this.mob.getGoalCtx().result() instanceof List toAlert)) return; + LivingEntity lastHurtByMob = this.mob.getLastHurtByMob(); -+ if (lastHurtByMob.getType() == EntityType.PLAYER && getServerLevel(this.mob).getGameRules().getBoolean(GameRules.RULE_UNIVERSAL_ANGER)) { ++ if (lastHurtByMob == null || (lastHurtByMob.getType() == EntityType.PLAYER && getServerLevel(this.mob).getGameRules().getBoolean(GameRules.RULE_UNIVERSAL_ANGER))) { + return; + } + for (Class clazz : this.toIgnoreDamage) {