diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ExplosiveTool.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ExplosiveTool.java index 59fcd86d00..759b2009bf 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ExplosiveTool.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/ExplosiveTool.java @@ -122,9 +122,13 @@ private void breakBlocks(BlockBreakEvent e, Player p, ItemStack item, Block b, L ExplosiveToolBreakBlocksEvent event = new ExplosiveToolBreakBlocksEvent(p, b, blocksToDestroy, item, this); Bukkit.getServer().getPluginManager().callEvent(event); + blocksToDestroy.sort((b1, b2) -> Integer.compare(b2.getY(), b1.getY())); + if (!event.isCancelled()) { for (Block block : blocksToDestroy) { - breakBlock(e, p, item, block, drops); + if (block.getType() != Material.AIR) { + breakBlock(e, p, item, block, drops); + } } } } @@ -195,7 +199,9 @@ private void breakBlock(BlockBreakEvent e, Player p, ItemStack item, Block b, Li BlockStorage.clearBlockInfo(b); } } else { - b.breakNaturally(item); + if (b.getType() != Material.AIR) { + b.breakNaturally(item); + } } damageItem(p, item); @@ -221,4 +227,4 @@ private BlockExplodeEvent createNewBlockExplodeEvent( throw new IllegalStateException("BlockExplodeEvent constructor not found"); } } -} +} \ No newline at end of file