summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThinkofdeath <thinkofdeath@spigotmc.org>2016-03-06 23:49:28 +0000
committerThinkofdeath <thinkofdeath@spigotmc.org>2016-03-06 23:50:19 +0000
commit0cd671108591fd6f16696379280b235fdbb7dca8 (patch)
treeef4ee0fefcfa1dec002ab1b9e6455927f3b8379b /src
parenta06e5cf8e82240893db66171331da647a3252c53 (diff)
downloadcraftbukkit-0cd671108591fd6f16696379280b235fdbb7dca8.tar
craftbukkit-0cd671108591fd6f16696379280b235fdbb7dca8.tar.gz
craftbukkit-0cd671108591fd6f16696379280b235fdbb7dca8.tar.lz
craftbukkit-0cd671108591fd6f16696379280b235fdbb7dca8.tar.xz
craftbukkit-0cd671108591fd6f16696379280b235fdbb7dca8.zip
Fix regenerating chunks not updating visually
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftWorld.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index f22885fe..4878ef83 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -195,6 +195,21 @@ public class CraftWorld implements World {
world.getChunkProviderServer().unloadQueue.remove(x, z);
world.getChunkProviderServer().chunks.remove(LongHash.toLong(x, z));
+ // Update neighbor counts
+ for (int xx = -2; xx < 3; xx++) {
+ for (int zz = -2; zz < 3; zz++) {
+ if (xx == 0 && zz == 0) {
+ continue;
+ }
+
+ net.minecraft.server.Chunk neighbor = world.getChunkProviderServer().getChunkIfLoaded(chunk.locX + x, chunk.locZ + z);
+ if (neighbor != null) {
+ neighbor.setNeighborUnloaded(-xx, -zz);
+ chunk.setNeighborUnloaded(xx, zz);
+ }
+ }
+ }
+
return true;
}
@@ -206,6 +221,10 @@ public class CraftWorld implements World {
net.minecraft.server.Chunk chunk = null;
chunk = world.getChunkProviderServer().chunkGenerator.getOrCreateChunk(x, z);
+ PlayerChunk playerChunk = world.getPlayerChunkMap().b/*PAIL: Rename*/(x, z);
+ if (playerChunk != null) {
+ playerChunk.chunk = chunk;
+ }
chunkLoadPostProcess(chunk, x, z);