diff options
-rw-r--r-- | src/main/java/net/minecraft/server/Chunk.java | 13 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/ChunkProviderServer.java | 2 | ||||
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 26 |
3 files changed, 12 insertions, 29 deletions
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java index 9aa52174..5835eef9 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -7,8 +7,11 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Random; -import org.bukkit.Bukkit; // CraftBukkit -import org.bukkit.craftbukkit.util.UnsafeList; // CraftBukkit + +// CraftBukkit start +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.util.UnsafeList; +// CraftBukkit end public class Chunk { @@ -62,11 +65,7 @@ public class Chunk { // CraftBukkit start if (!(this instanceof EmptyChunk)) { - org.bukkit.craftbukkit.CraftWorld cworld = this.world.getWorld(); - this.bukkitChunk = (cworld == null) ? null : cworld.popPreservedChunk(i, j); - if (this.bukkitChunk == null) { - this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this); - } + this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this); } } diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java index bc21b8a0..60f7f91d 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -241,8 +241,6 @@ public class ChunkProviderServer implements IChunkProvider { ChunkUnloadEvent event = new ChunkUnloadEvent(chunk.bukkitChunk); server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - this.world.getWorld().preserveChunk((CraftChunk) chunk.bukkitChunk); - chunk.removeEntities(); this.saveChunk(chunk); this.saveChunkNOP(chunk); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 8603f9e2..5bc8eb68 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1,22 +1,19 @@ package org.bukkit.craftbukkit; -import com.google.common.collect.MapMaker; import java.io.File; import java.util.Set; -import org.apache.commons.lang.Validate; - -import org.bukkit.craftbukkit.entity.*; -import org.bukkit.craftbukkit.metadata.BlockMetadataStore; -import org.bukkit.entity.*; -import org.bukkit.entity.Entity; - import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; -import java.util.concurrent.ConcurrentMap; import java.util.List; import java.util.Random; import java.util.UUID; +import org.apache.commons.lang.Validate; + +import org.bukkit.craftbukkit.entity.*; +import org.bukkit.craftbukkit.metadata.BlockMetadataStore; +import org.bukkit.entity.*; +import org.bukkit.entity.Entity; import net.minecraft.server.*; @@ -52,7 +49,6 @@ public class CraftWorld implements World { private final WorldServer world; private Environment environment; private final CraftServer server = (CraftServer) Bukkit.getServer(); - private ConcurrentMap<Integer, CraftChunk> unloadedChunks = new MapMaker().weakValues().makeMap(); private final ChunkGenerator generator; private final List<BlockPopulator> populators = new ArrayList<BlockPopulator>(); private final BlockMetadataStore blockMetadata = new BlockMetadataStore(this); @@ -69,15 +65,6 @@ public class CraftWorld implements World { environment = env; } - public void preserveChunk(CraftChunk chunk) { - chunk.breakLink(); - unloadedChunks.put((chunk.getX() << 16) + chunk.getZ(), chunk); - } - - public Chunk popPreservedChunk(int x, int z) { - return unloadedChunks.remove((x << 16) + z); - } - public Block getBlockAt(int x, int y, int z) { return getChunkAt(x >> 4, z >> 4).getBlock(x & 0xF, y & 0xFF, z & 0xF); } @@ -181,7 +168,6 @@ public class CraftWorld implements World { world.chunkProviderServer.saveChunkNOP(chunk); } - preserveChunk((CraftChunk) chunk.bukkitChunk); world.chunkProviderServer.unloadQueue.remove(x, z); world.chunkProviderServer.chunks.remove(x, z); world.chunkProviderServer.chunkList.remove(chunk); |