diff --git a/src/com/garbagemule/MobArena/ArenaListener.java b/src/com/garbagemule/MobArena/ArenaListener.java index 4f8d58e..a64df2e 100644 --- a/src/com/garbagemule/MobArena/ArenaListener.java +++ b/src/com/garbagemule/MobArena/ArenaListener.java @@ -44,6 +44,7 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.entity.EntityTargetEvent.TargetReason; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.hanging.HangingBreakEvent; import org.bukkit.event.player.PlayerAnimationEvent; import org.bukkit.event.player.PlayerBucketEmptyEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; @@ -170,6 +171,17 @@ public class ArenaListener event.setCancelled(true); } + public void onHangingBreak(HangingBreakEvent event) { + Location l = event.getEntity().getLocation(); + if (!arena.getRegion().contains(l)) { + return; + } + if (arena.inEditMode()) { + return; + } + event.setCancelled(true); + } + public void onBlockBurn(BlockBurnEvent event) { if (!arena.getRegion().contains(event.getBlock().getLocation()) || onBlockDestroy(event)) return; diff --git a/src/com/garbagemule/MobArena/listeners/MAGlobalListener.java b/src/com/garbagemule/MobArena/listeners/MAGlobalListener.java index ff05b24..039f7a3 100644 --- a/src/com/garbagemule/MobArena/listeners/MAGlobalListener.java +++ b/src/com/garbagemule/MobArena/listeners/MAGlobalListener.java @@ -6,6 +6,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.*; import org.bukkit.event.entity.*; +import org.bukkit.event.hanging.HangingBreakEvent; import org.bukkit.event.player.*; import org.bukkit.event.world.WorldLoadEvent; import org.bukkit.event.world.WorldUnloadEvent; @@ -35,7 +36,6 @@ public class MAGlobalListener implements Listener this.am = am; } - /////////////////////////////////////////////////////////////////////////// // // // BLOCK EVENTS // @@ -49,6 +49,12 @@ public class MAGlobalListener implements Listener arena.getEventListener().onBlockBreak(event); } + @EventHandler + public void hangingBreak(HangingBreakEvent event) { + for (Arena arena : am.getArenas()) + arena.getEventListener().onHangingBreak(event); + } + @EventHandler(priority = EventPriority.HIGHEST) public void blockBurn(BlockBurnEvent event) { for (Arena arena : am.getArenas())