Luminol-Core/luminol-server/minecraft-patches/features/0058-Do-not-setTarget-for-entity-which-is-out-of-current-.patch
2026-06-30 18:32:29 +08:00

24 lines
1.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: MrHua269 <mrhua269@gmail.com>
Date: Sun, 29 Jun 2025 11:45:52 +0800
Subject: [PATCH] Do not setTarget for entity which is out of current
tickregion
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index b774f88bae7661f8d374b6f5aea49ae5c0f127c6..36b86c7ac2fb24c88b44a4f4679dba0616f93f37 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -277,6 +277,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
if (this.getTargetRaw() == target) { // Folia - region threading
return false;
}
+ // Luminol start - Fix off-region targeting
+ if (!ca.spottedleaf.moonrise.common.util.TickThread.isTickThreadFor(target)) {
+ return false;
+ }
+ // Luminol end
if (reason != null) {
if (reason == EntityTargetEvent.TargetReason.UNKNOWN && this.getTarget() != null && target == null) {
reason = this.getTarget().isAlive() ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;