From 82f4d6d15006e4980cee1d2645bf24c35c0c23d2 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 29 Jul 2018 11:58:05 -0400 Subject: [PATCH] Always process chunk registration after moving This will help guarantee that entities are always in the chunk that they are currently located at. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 3a4c9a02e..c8f32a49a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -338,6 +338,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.locX = d0; this.locY = d1; this.locZ = d2; + if (valid) world.entityJoinedWorld(this, false); // Paper - ensure Entity is moved to its proper chunk float f = this.width / 2.0F; float f1 = this.length; @@ -956,6 +957,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke this.locX = (axisalignedbb.a + axisalignedbb.d) / 2.0D; this.locY = axisalignedbb.b; this.locZ = (axisalignedbb.c + axisalignedbb.f) / 2.0D; + if (valid) world.entityJoinedWorld(this, false); // Paper - ensure Entity is moved to its proper chunk } protected SoundEffect ad() { diff --git a/src/main/java/net/minecraft/server/EntityLeash.java b/src/main/java/net/minecraft/server/EntityLeash.java index f2d3d0b4c..f20060614 100644 --- a/src/main/java/net/minecraft/server/EntityLeash.java +++ b/src/main/java/net/minecraft/server/EntityLeash.java @@ -31,6 +31,7 @@ public class EntityLeash extends EntityHanging { this.locX = (double) this.blockPosition.getX() + 0.5D; this.locY = (double) this.blockPosition.getY() + 0.5D; this.locZ = (double) this.blockPosition.getZ() + 0.5D; + if (valid) world.entityJoinedWorld(this, false); // Paper - ensure Entity is moved to its proper chunk } public void setDirection(EnumDirection enumdirection) {} diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java index 95c6cd897..bc11e7da2 100644 --- a/src/main/java/net/minecraft/server/EntityShulker.java +++ b/src/main/java/net/minecraft/server/EntityShulker.java @@ -385,6 +385,7 @@ public class EntityShulker extends EntityGolem implements IMonster { this.locX = (double) blockposition.getX() + 0.5D; this.locY = (double) blockposition.getY(); this.locZ = (double) blockposition.getZ() + 0.5D; + if (valid) world.entityJoinedWorld(this, false); // Paper - ensure Entity is moved to its proper chunk this.lastX = this.locX; this.lastY = this.locY; this.lastZ = this.locZ; -- 2.18.0