Paper/Spigot-Server-Patches/0157-Chunk-registration-fixes.patch
Aikar 28caff2299
Undo a mistaken chunk registration change - Closes #1302
I misinterpreted some code as a risk of entity loss, but now
after deeper study, I see how that code was used more and why
it was adding entities to chunks that they shouldn't have been
in during a world transfer process.
2018-08-04 12:53:38 -04:00

26 lines
1,018 B
Diff

From 5207f32bb4fc93b43be6ff957e7846173540a824 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 21 Sep 2016 22:54:28 -0400
Subject: [PATCH] Chunk registration fixes
World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is treated
Keep them consistent
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 6e37c4366f..000d2eeb93 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1770,7 +1770,7 @@ public abstract class World implements IBlockAccess {
}
i = MathHelper.floor(entity.locX / 16.0D);
- j = MathHelper.floor(entity.locY / 16.0D);
+ j = Math.min(15, Math.max(0, MathHelper.floor(entity.locY / 16.0D))); // Paper - stay consistent with chunk add/remove behavior
int k = MathHelper.floor(entity.locZ / 16.0D);
if (!entity.aa || entity.ab != i || entity.ac != j || entity.ad != k) {
--
2.18.0