diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/ChestBreak.java b/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/ChestBreak.java index 37615e9..7433a02 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/ChestBreak.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/ChestBreak.java @@ -10,6 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; /** @@ -37,6 +38,13 @@ public class ChestBreak implements Listener { } } + @EventHandler(ignoreCancelled = true) + public static void onEntityChangeBlock(EntityChangeBlockEvent event) { + if (!canBeBroken(event.getBlock(), null)) { + event.setCancelled(true); + } + } + private static boolean canBeBroken(Block block, Player breaker) { if (!uBlock.couldBeShopContainer(block) || !Properties.USE_BUILT_IN_PROTECTION) { return true; diff --git a/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java b/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java index c1d9576..23c5398 100644 --- a/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java +++ b/src/main/java/com/Acrobot/ChestShop/Listeners/Block/Break/SignBreak.java @@ -19,6 +19,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.*; +import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.metadata.FixedMetadataValue; @@ -122,6 +123,13 @@ public class SignBreak implements Listener { } } + @EventHandler(ignoreCancelled = true) + public static void onEntityChangeBlock(EntityChangeBlockEvent event) { + if (!canBlockBeBroken(event.getBlock(), null)) { + event.setCancelled(true); + } + } + public static boolean canBlockBeBroken(Block block, Player breaker) { List attachedSigns = getAttachedSigns(block); List brokenBlocks = new LinkedList();