diff options
author | Tahg <tahgtahv@gmail.com> | 2011-02-19 10:55:47 -0500 |
---|---|---|
committer | Tahg <tahgtahv@gmail.com> | 2011-02-19 23:44:35 -0500 |
commit | ca4076077eb8514b2e5bbeb315058b12169e7b81 (patch) | |
tree | d7894677e71eb0a148c93db28ec6580cf6a61bf0 /src/main/java/net/minecraft/server/ChunkProviderServer.java | |
parent | d4b67c5549dec7c27b39a27c81299e218b79826f (diff) | |
download | craftbukkit-ca4076077eb8514b2e5bbeb315058b12169e7b81.tar craftbukkit-ca4076077eb8514b2e5bbeb315058b12169e7b81.tar.gz craftbukkit-ca4076077eb8514b2e5bbeb315058b12169e7b81.tar.lz craftbukkit-ca4076077eb8514b2e5bbeb315058b12169e7b81.tar.xz craftbukkit-ca4076077eb8514b2e5bbeb315058b12169e7b81.zip |
fixed buttons, plates
added yield to explosion
added event for chunk unloading
Diffstat (limited to 'src/main/java/net/minecraft/server/ChunkProviderServer.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ChunkProviderServer.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java index 53b69ef3..87beef57 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -10,15 +10,17 @@ import java.util.Set; // CraftBukkit start import org.bukkit.Location; +import org.bukkit.Server; import org.bukkit.craftbukkit.CraftChunk; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.Player; import org.bukkit.event.Event.Type; import org.bukkit.event.world.ChunkLoadEvent; +import org.bukkit.event.world.ChunkUnloadEvent; // CraftBukkit end -public class ChunkProviderServer implements IChunkProvider { - +public class ChunkProviderServer implements IChunkProvider +{ public LongHashset a = new LongHashset(); // CraftBukkit private Chunk b; private IChunkProvider c; @@ -39,7 +41,7 @@ public class ChunkProviderServer implements IChunkProvider { return this.e.containsKey(i, j); } // CraftBukkit end - + public void c(int i, int j) { int k = i * 16 + 8 - this.g.spawnX; int l = j * 16 + 8 - this.g.spawnZ; @@ -197,16 +199,22 @@ public class ChunkProviderServer implements IChunkProvider { public boolean a() { if (!this.g.C) { // CraftBukkit start + Server server = g.getServer(); while (!this.a.isEmpty()) { long chunkcoordinates = this.a.popFirst(); Chunk chunk = e.get(chunkcoordinates); - if (chunk == null) continue; - chunk.e(); - this.b(chunk); - this.a(chunk); - this.a.remove(chunkcoordinates); - this.e.remove(chunkcoordinates); - this.f.remove(chunk); + if (chunk == null) { + continue; + } + ChunkUnloadEvent cue = new ChunkUnloadEvent(Type.CHUNK_UNLOADED, chunk.bukkitChunk); + server.getPluginManager().callEvent(cue); + if (!cue.isCancelled()) { + chunk.e(); + this.b(chunk); + this.a(chunk); + this.e.remove(chunkcoordinates); + this.f.remove(chunk); + } } // CraftBukkit end |