diff options
author | culturespy <culturespy@gmail.com> | 2011-02-07 13:37:08 -0500 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-02-08 14:11:34 +0000 |
commit | f20af7b1293daf4d8134fb1a58b3d5ea7b59fe75 (patch) | |
tree | 0954bb0fe9a4eadc4b315f308d681b7d8a64d39f | |
parent | 499d44763daed5f7e51b0381482c90674e29acc3 (diff) | |
download | craftbukkit-f20af7b1293daf4d8134fb1a58b3d5ea7b59fe75.tar craftbukkit-f20af7b1293daf4d8134fb1a58b3d5ea7b59fe75.tar.gz craftbukkit-f20af7b1293daf4d8134fb1a58b3d5ea7b59fe75.tar.lz craftbukkit-f20af7b1293daf4d8134fb1a58b3d5ea7b59fe75.tar.xz craftbukkit-f20af7b1293daf4d8134fb1a58b3d5ea7b59fe75.zip |
Make Explosion remember whether it was canceled so that WorldServer can avoid sending unneeded explode packets.
-rw-r--r-- | src/main/java/net/minecraft/server/Explosion.java | 2 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/WorldServer.java | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java index 3dd9a4fd..559d4498 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -29,6 +29,7 @@ public class Explosion { public Entity e; public float f; public Set g = new HashSet(); + public boolean wasCanceled = false; public Explosion(World world, Entity entity, double d0, double d1, double d2, float f) { this.i = world; @@ -199,6 +200,7 @@ public class Explosion { server.getPluginManager().callEvent(event); if (event.isCancelled()) { + wasCanceled = true; return; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java index 18ab1526..91914ab8 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -113,6 +113,12 @@ public class WorldServer extends World implements BlockChangeDelegate { public Explosion a(Entity entity, double d0, double d1, double d2, float f, boolean flag) { Explosion explosion = super.a(entity, d0, d1, d2, f, flag); + // Craftbukkit start + if(explosion.wasCanceled) { + return explosion; + } + // Craftbukkit end + this.D.f.a(d0, d1, d2, 64.0D, new Packet60Explosion(d0, d1, d2, f, explosion.g)); return explosion; } |