From 1623bf0f9be5502a40d5c01f6704af9e96660eda Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Wed, 31 Oct 2012 13:53:33 -0400 Subject: [PATCH] Fire HangingBreakEvent when explosions remove hanging entities. Fixes BUKKIT-2764 --- .../java/net/minecraft/server/EntityHanging.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityHanging.java b/src/main/java/net/minecraft/server/EntityHanging.java index 0db41ca1a1..e40857e490 100644 --- a/src/main/java/net/minecraft/server/EntityHanging.java +++ b/src/main/java/net/minecraft/server/EntityHanging.java @@ -206,7 +206,7 @@ public abstract class EntityHanging extends Entity { public boolean damageEntity(DamageSource damagesource, int i) { if (!this.dead && !this.world.isStatic) { // CraftBukkit start - HangingBreakEvent event = null; + HangingBreakEvent event = new HangingBreakEvent((Hanging) this.getBukkitEntity(), HangingBreakEvent.RemoveCause.DEFAULT); PaintingBreakEvent paintingEvent = null; if (damagesource.getEntity() != null) { event = new HangingBreakByEntityEvent((Hanging) this.getBukkitEntity(), damagesource.getEntity() == null ? null : damagesource.getEntity().getBukkitEntity()); @@ -215,18 +215,18 @@ public abstract class EntityHanging extends Entity { // Fire old painting event until it can be removed paintingEvent = new org.bukkit.event.painting.PaintingBreakByEntityEvent((Painting) this.getBukkitEntity(), damagesource.getEntity() == null ? null : damagesource.getEntity().getBukkitEntity()); } + } else if (damagesource == DamageSource.EXPLOSION || damagesource == DamageSource.EXPLOSION2) { + event = new HangingBreakEvent((Hanging) this.getBukkitEntity(), HangingBreakEvent.RemoveCause.EXPLOSION); } - if (event != null) { - this.world.getServer().getPluginManager().callEvent(event); - } + this.world.getServer().getPluginManager().callEvent(event); if (paintingEvent != null) { - paintingEvent.setCancelled(event != null && event.isCancelled()); + paintingEvent.setCancelled(event.isCancelled()); this.world.getServer().getPluginManager().callEvent(paintingEvent); } - if (dead || (event != null && event.isCancelled()) || (paintingEvent != null && paintingEvent.isCancelled())) { + if (dead || event.isCancelled() || (paintingEvent != null && paintingEvent.isCancelled())) { return true; } // CraftBukkit end