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
|
--- a/net/minecraft/server/PlayerChunk.java
|
||||||
+++ b/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.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -19,8 +19,10 @@
|
|||||||
+ public final List<EntityPlayer> c = Lists.newArrayList(); // CraftBukkit - public
|
+ public final List<EntityPlayer> c = Lists.newArrayList(); // CraftBukkit - public
|
||||||
private final ChunkCoordIntPair location;
|
private final ChunkCoordIntPair location;
|
||||||
private final short[] dirtyBlocks = new short[64];
|
private final short[] dirtyBlocks = new short[64];
|
||||||
private Chunk chunk;
|
- private Chunk chunk;
|
||||||
@@ -22,17 +24,28 @@
|
+ public Chunk chunk; // CraftBukkit - public
|
||||||
|
private int dirtyCount;
|
||||||
|
private int h;
|
||||||
private long i;
|
private long i;
|
||||||
private boolean done;
|
private boolean done;
|
||||||
|
|
||||||
|
@ -195,6 +195,21 @@ public class CraftWorld implements World {
|
|||||||
world.getChunkProviderServer().unloadQueue.remove(x, z);
|
world.getChunkProviderServer().unloadQueue.remove(x, z);
|
||||||
world.getChunkProviderServer().chunks.remove(LongHash.toLong(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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,6 +221,10 @@ public class CraftWorld implements World {
|
|||||||
net.minecraft.server.Chunk chunk = null;
|
net.minecraft.server.Chunk chunk = null;
|
||||||
|
|
||||||
chunk = world.getChunkProviderServer().chunkGenerator.getOrCreateChunk(x, z);
|
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);
|
chunkLoadPostProcess(chunk, x, z);
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren