From a8c6c72e3f2ba1560959421b0d2375fbd9f82f42 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 3 Mar 2016 00:07:23 -0600 Subject: [PATCH] EAR: Fix bug with teleporting entities [17:53:15] had a reproduceable issue of losing entities on teleport, now resolved https://hub.spigotmc.org/stash/projects/SPIGOT/repos/spigot/pull-requests/52/overview diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 018da0f..38bc9c0 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -119,9 +119,17 @@ public abstract class Entity implements ICommandListener { private static final DataWatcherObject aA = DataWatcher.a(Entity.class, DataWatcherRegistry.h); private static final DataWatcherObject aB = DataWatcher.a(Entity.class, DataWatcherRegistry.h); public boolean aa; - public int ab; - public int ac; - public int ad; + // Paper start - EAR: Fix bug with teleporting entities + public boolean isAddedToChunk() { + int chunkX = MathHelper.floor(locX / 16.0D); + int chunkY = MathHelper.floor(locY / 16.0D); + int chunkZ = MathHelper.floor(locZ / 16.0D); + return aa && getChunkX() == chunkX && getChunkY() == chunkY || getChunkZ() == chunkZ; + } + public int ab; public int getChunkX() { return ab; } + public int ac; public int getChunkY() { return ac; } + public int ad; public int getChunkZ() { return ad; } + // Paper end public boolean ah; public boolean impulse; public int portalCooldown; diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java index f0d3a19..a1bd1a6 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -249,7 +249,7 @@ public class ActivationRange { // Never safe to skip fireworks or entities not yet added to chunk // PAIL: inChunk - if ( !entity.aa || entity instanceof EntityFireworks ) { + if ( !entity.isAddedToChunk() || entity instanceof EntityFireworks ) { // Paper - EAR: Fix bug with teleporting entities return true; } -- 2.7.1.windows.2