Paper/Spigot-Server-Patches/0157-Chunk-registration-fixes.patch

35 lines
1.5 KiB
Diff
Raw Normal View History

From 8133b92590c9b861b7342bcc1079c23f2e106450 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 6e37c4366..ea24a6e4c 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 {
2017-05-21 12:41:39 +08:00
}
2017-05-31 16:04:52 +08:00
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
2017-05-21 12:41:39 +08:00
int k = MathHelper.floor(entity.locZ / 16.0D);
2017-05-21 12:41:39 +08:00
if (!entity.aa || entity.ab != i || entity.ac != j || entity.ad != k) {
@@ -1778,7 +1778,7 @@ public abstract class World implements IBlockAccess {
this.getChunkAt(entity.ab, entity.ad).a(entity, entity.ac);
}
- if (!entity.bD() && !this.isChunkLoaded(i, k, true)) {
+ if (false && !entity.bD() && !this.isChunkLoaded(i, k, true)) { // Paper - Always send entities into a new chunk, never lose them
entity.aa = false;
} else {
this.getChunkAt(i, k).a(entity);
--
2.18.0