summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorculturespy <culturespy@gmail.com>2011-02-07 13:37:08 -0500
committerDinnerbone <dinnerbone@dinnerbone.com>2011-02-08 14:11:34 +0000
commitf20af7b1293daf4d8134fb1a58b3d5ea7b59fe75 (patch)
tree0954bb0fe9a4eadc4b315f308d681b7d8a64d39f
parent499d44763daed5f7e51b0381482c90674e29acc3 (diff)
downloadcraftbukkit-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.java2
-rw-r--r--src/main/java/net/minecraft/server/WorldServer.java6
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;
}