Skip to content

Commit

Permalink
Always move Entity to its new Chunk even if unloaded
Browse files Browse the repository at this point in the history
Vanilla logic here would allow us to remvoe an entity from
its current chunk, and if it was going to move into an unloaded
chunk, that entity would not be added to the unloaded chunk.

This is bad because this will result in the entity being lost!

In almost all cases, the chunk will be loaded, but in the event
it wasn't, instead of losing the entity, load the chunk to add
the entity to it.
  • Loading branch information
aikar committed Jul 29, 2018
1 parent e674d3a commit c6d6773
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions Spigot-Server-Patches/0157-Chunk-registration-fixes.patch
@@ -1,4 +1,4 @@
From e12d715554fa2684d9c5c7dcfc765fdf66f02654 Mon Sep 17 00:00:00 2001
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
Expand All @@ -8,7 +8,7 @@ World checks and the Chunk Add logic are inconsistent on how Y > 256, < 0, is tr
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..000d2eeb9 100644
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 {
Expand All @@ -20,6 +20,15 @@ index 6e37c4366..000d2eeb9 100644
int k = MathHelper.floor(entity.locZ / 16.0D);

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

0 comments on commit c6d6773

Please sign in to comment.