mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 07:20:00 +08:00
fc1e70df07
* master: Always process chunk registration after moving Always move Entity to its new Chunk even if unloaded If Entity is added to chunk, look up the chunk if current isnt set Ignore Dead Entities in entityList iteration Always process chunk removal in removeEntity
35 lines
1.5 KiB
Diff
35 lines
1.5 KiB
Diff
From c77ae6f712e3d8402a0aafe3e543cae5b24754d9 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 e74b53c48..01041ede9 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -1485,7 +1485,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose
|
|
}
|
|
|
|
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.inChunk || entity.ae != i || entity.af != j || entity.ag != k) {
|
|
@@ -1493,7 +1493,7 @@ public abstract class World implements GeneratorAccess, IIBlockAccess, AutoClose
|
|
this.getChunkAt(entity.ae, entity.ag).a(entity, entity.af);
|
|
}
|
|
|
|
- if (!entity.bN() && !this.isChunkLoaded(i, k, true)) {
|
|
+ if (false && !entity.bN() && !this.isChunkLoaded(i, k, true)) { // Paper - Always send entities into a new chunk, never lose them
|
|
entity.inChunk = false;
|
|
} else {
|
|
this.getChunkAt(i, k).a(entity);
|
|
--
|
|
2.18.0
|
|
|