2018-07-30 00:06:35 +08:00
|
|
|
From 8133b92590c9b861b7342bcc1079c23f2e106450 Mon Sep 17 00:00:00 2001
|
2016-09-22 10:56:19 +08:00
|
|
|
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
|
2018-07-30 00:06:35 +08:00
|
|
|
index 6e37c4366..ea24a6e4c 100644
|
2016-09-22 10:56:19 +08:00
|
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
2018-05-31 04:31:55 +08:00
|
|
|
@@ -1770,7 +1770,7 @@ public abstract class World implements IBlockAccess {
|
2017-05-21 12:41:39 +08:00
|
|
|
}
|
2016-09-22 10:56:19 +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);
|
2016-09-22 10:56:19 +08:00
|
|
|
|
2017-05-21 12:41:39 +08:00
|
|
|
if (!entity.aa || entity.ab != i || entity.ac != j || entity.ad != k) {
|
2018-07-30 00:06:35 +08:00
|
|
|
@@ -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);
|
2016-09-22 10:56:19 +08:00
|
|
|
--
|
2018-07-04 15:55:24 +08:00
|
|
|
2.18.0
|
2016-09-22 10:56:19 +08:00
|
|
|
|