Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-18 04:20:08 +01:00
Fix regenerating chunks not updating visually
Dieser Commit ist enthalten in:
Ursprung
a06e5cf8e8
Commit
0cd6711085
@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/server/PlayerChunk.java
|
||||
+++ b/net/minecraft/server/PlayerChunk.java
|
||||
@@ -4,16 +4,18 @@
|
||||
@@ -4,35 +4,48 @@
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
import java.util.ArrayList;
|
||||
@ -19,8 +19,10 @@
|
||||
+ public final List<EntityPlayer> c = Lists.newArrayList(); // CraftBukkit - public
|
||||
private final ChunkCoordIntPair location;
|
||||
private final short[] dirtyBlocks = new short[64];
|
||||
private Chunk chunk;
|
||||
@@ -22,17 +24,28 @@
|
||||
- private Chunk chunk;
|
||||
+ public Chunk chunk; // CraftBukkit - public
|
||||
private int dirtyCount;
|
||||
private int h;
|
||||
private long i;
|
||||
private boolean done;
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren