Append new fix to adult off tickregion fixing

This commit is contained in:
MrHua269
2025-05-29 10:31:17 +08:00
parent b620644bcb
commit c8daaf7d24
3 changed files with 21 additions and 8 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add fix for off region adult following ai behavior
diff --git a/net/minecraft/world/entity/ai/behavior/BabyFollowAdult.java b/net/minecraft/world/entity/ai/behavior/BabyFollowAdult.java
index a9be3acbf4ea52d2988347abfa6f4f8c02b1da26..751f3dde8e6bc2c0365e8672f5079af0379a69de 100644
index a9be3acbf4ea52d2988347abfa6f4f8c02b1da26..a38fad8433c9e349a34e0a80442269943e614c9d 100644
--- a/net/minecraft/world/entity/ai/behavior/BabyFollowAdult.java
+++ b/net/minecraft/world/entity/ai/behavior/BabyFollowAdult.java
@@ -25,6 +25,14 @@ public class BabyFollowAdult {
@@ -23,3 +23,16 @@ index a9be3acbf4ea52d2988347abfa6f4f8c02b1da26..751f3dde8e6bc2c0365e8672f5079af0
if (mob.closerThan(ageableMob, followRange.getMaxValue() + 1) && !mob.closerThan(ageableMob, followRange.getMinValue())) {
// CraftBukkit start
org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(mob, ageableMob, org.bukkit.event.entity.EntityTargetEvent.TargetReason.FOLLOW_LEADER);
@@ -35,6 +43,12 @@ public class BabyFollowAdult {
nearestVisibleAdult.erase();
return true;
}
+ // Luminol start - Fix off region baby follow adult ai
+ if (!ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(((org.bukkit.craftbukkit.entity.CraftEntity)event.getTarget()).getHandleRaw()) {
+ nearestVisibleAdult.erase();
+ return true;
+ }
+ // Luminol end
ageableMob = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getTarget()).getHandle();
// CraftBukkit end
WalkTarget walkTarget1 = new WalkTarget(

View File

@@ -22,10 +22,10 @@ index 400e632208d133a3f49fc7f14bceb48a1026769b..631bec0adee5b01bfb931c25195b949e
+ // KioCG end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 00abfbfc0c75434b18e89334a35b657519b51abc..7e5627c5b09a4fb7b923121355b351b5518fea50 100644
index 0e32a9ad852e521ce9618acc1642d3748995b4bf..7133038efdef5d60a1bdccb012a2020e432ef25e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2365,6 +2365,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2368,6 +2368,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
handle.newLevel = data.getIntOr("newLevel", 0);
handle.expToDrop = data.getIntOr("expToDrop", 0);
handle.keepLevel = data.getBooleanOr("keepLevel", false);
@@ -41,7 +41,7 @@ index 00abfbfc0c75434b18e89334a35b657519b51abc..7e5627c5b09a4fb7b923121355b351b5
});
}
@@ -2386,6 +2395,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2389,6 +2398,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
data.putLong("lastPlayed", System.currentTimeMillis());
data.putString("lastKnownName", handle.getScoreboardName());
@@ -57,7 +57,7 @@ index 00abfbfc0c75434b18e89334a35b657519b51abc..7e5627c5b09a4fb7b923121355b351b5
// Paper start - persist for use in offline save data
if (!tag.contains("Paper")) {
tag.put("Paper", new CompoundTag());
@@ -3571,4 +3589,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -3581,4 +3599,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setDeathScreenScore(final int score) {
getHandle().setScore(score);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] SparklyPaper Optimize canSee checks
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 7e5627c5b09a4fb7b923121355b351b5518fea50..21d5b328c7fc254c711ea0c4444bdbe3dd9b4a1f 100644
index 7133038efdef5d60a1bdccb012a2020e432ef25e..77dd160db2d05d6542ae336fbd71eeae76479b91 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -213,7 +213,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -216,7 +216,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private boolean hasPlayedBefore = false;
private final ConversationTracker conversationTracker = new ConversationTracker();
private final Set<String> channels = new HashSet<String>();
@@ -17,7 +17,7 @@ index 7e5627c5b09a4fb7b923121355b351b5518fea50..21d5b328c7fc254c711ea0c4444bdbe3
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
private int hash = 0;
@@ -2264,9 +2264,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2267,9 +2267,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {