From 4b3f967e49f069ca94535f1ef5c2695cc8eadc4a Mon Sep 17 00:00:00 2001 From: Owen <23108066+Owen1212055@users.noreply.github.com> Date: Fri, 20 Jun 2025 16:02:24 -0400 Subject: [PATCH] Improve Fix MC-44654 (#12703) This more properly implement spigot's fix for teleportation area effect clouds, now however supporting many other entity types specified in this bug report. Currently, this is not an issue for (all) hanging blocks since they have a fix identical to this inside of setPos. Note however the client does not nicely support moving these entities anyways. --- .../net/minecraft/world/entity/Entity.java.patch | 11 +++++++++-- .../net/minecraft/world/entity/EntityType.java.patch | 9 --------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch index 4ecc74c7b40..742ae285da7 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/Entity.java.patch @@ -1832,10 +1832,17 @@ int floor = Mth.floor(x); int floor1 = Mth.floor(y); int floor2 = Mth.floor(z); -@@ -3686,6 +_,12 @@ +@@ -3685,7 +_,18 @@ + serverLevel.getWaypointManager().updatePlayer(serverPlayer); } } - } +- } ++ // Paper start - Fix MC-44654 ++ if (this.getType().updateInterval() == Integer.MAX_VALUE) { ++ this.hasImpulse = true; ++ } ++ // Paper end - Fix MC-44654 ++ } + // Paper start - Block invalid positions and bounding box; don't allow desync of pos and AABB + // hanging has its own special logic + if (!(this instanceof net.minecraft.world.entity.decoration.HangingEntity) && (forceBoundingBoxUpdate || this.position.x != x || this.position.y != y || this.position.z != z)) { diff --git a/paper-server/patches/sources/net/minecraft/world/entity/EntityType.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/EntityType.java.patch index 7086a880cc7..ef0bbca8719 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/EntityType.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/EntityType.java.patch @@ -1,14 +1,5 @@ --- a/net/minecraft/world/entity/EntityType.java +++ b/net/minecraft/world/entity/EntityType.java -@@ -217,7 +_,7 @@ - .fireImmune() - .sized(6.0F, 0.5F) - .clientTrackingRange(10) -- .updateInterval(Integer.MAX_VALUE) -+ .updateInterval(10) // CraftBukkit - SPIGOT-3729: track area effect clouds - ); - public static final EntityType ARMADILLO = register( - "armadillo", EntityType.Builder.of(Armadillo::new, MobCategory.CREATURE).sized(0.7F, 0.65F).eyeHeight(0.26F).clientTrackingRange(10) @@ -1155,6 +_,22 @@ boolean shouldOffsetY, boolean shouldOffsetYMore