summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/minecraft/server/ChunkProviderServer.java7
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftWorld.java4
2 files changed, 4 insertions, 7 deletions
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 6a5fe5b3..72701d16 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -25,7 +25,6 @@ public class ChunkProviderServer implements IChunkProvider {
private IChunkLoader e;
public boolean forceChunkLoad = false; // true -> false
public LongObjectHashMap<Chunk> chunks = new LongObjectHashMap<Chunk>();
- public List chunkList = new ArrayList();
public WorldServer world;
// CraftBukkit end
@@ -70,7 +69,7 @@ public class ChunkProviderServer implements IChunkProvider {
}
public void a() {
- Iterator iterator = this.chunkList.iterator();
+ Iterator iterator = this.chunks.values().iterator(); // CraftBukkit
while (iterator.hasNext()) {
Chunk chunk = (Chunk) iterator.next();
@@ -98,7 +97,6 @@ public class ChunkProviderServer implements IChunkProvider {
}
this.chunks.put(i, j, chunk); // CraftBukkit
- this.chunkList.add(chunk);
if (chunk != null) {
chunk.addEntities();
}
@@ -216,7 +214,7 @@ public class ChunkProviderServer implements IChunkProvider {
public boolean saveChunks(boolean flag, IProgressUpdate iprogressupdate) {
int i = 0;
- Iterator iterator = this.chunkList.iterator();
+ Iterator iterator = this.chunks.values().iterator(); // CraftBukkit
while (iterator.hasNext()) {
Chunk chunk = (Chunk) iterator.next();
@@ -263,7 +261,6 @@ public class ChunkProviderServer implements IChunkProvider {
this.saveChunkNOP(chunk);
// this.unloadQueue.remove(integer);
this.chunks.remove(chunkcoordinates); // CraftBukkit
- this.chunkList.remove(chunk);
}
}
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 30e80c50..0f788626 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -164,7 +164,9 @@ public class CraftWorld implements World {
if (chunk.mustSave) { // If chunk had previously been queued to save, must do save to avoid loss of that data
save = true;
}
+
chunk.removeEntities(); // Always remove entities - even if discarding, need to get them out of world table
+
if (save && !(chunk instanceof EmptyChunk)) {
world.chunkProviderServer.saveChunk(chunk);
world.chunkProviderServer.saveChunkNOP(chunk);
@@ -172,7 +174,6 @@ public class CraftWorld implements World {
world.chunkProviderServer.unloadQueue.remove(x, z);
world.chunkProviderServer.chunks.remove(x, z);
- world.chunkProviderServer.chunkList.remove(chunk);
return true;
}
@@ -242,7 +243,6 @@ public class CraftWorld implements World {
private void chunkLoadPostProcess(net.minecraft.server.Chunk chunk, int x, int z) {
if (chunk != null) {
world.chunkProviderServer.chunks.put(x, z, chunk);
- world.chunkProviderServer.chunkList.add(chunk);
chunk.addEntities();