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 db990c64c..6fe1174e4 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 @@ -6,6 +6,7 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; +import dev.lone.itemsadder.api.CustomBlock; import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.Material; @@ -35,9 +36,9 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage; /** * This {@link SlimefunItem} is a super class for items like the {@link ExplosivePickaxe} or {@link ExplosiveShovel}. - * + * * @author TheBusyBiscuit - * + * * @see ExplosivePickaxe * @see ExplosiveShovel * @@ -83,6 +84,10 @@ public class ExplosiveTool extends SimpleSlimefunItem implements if (!blockExplodeEvent.isCancelled()) { for (Block block : blockExplodeEvent.blockList()) { if (canBreak(p, block)) { + if (Slimefun.getIntegrations().isCustomBlock(block)) { + drops.addAll(CustomBlock.byAlreadyPlaced(block).getLoot()); + CustomBlock.remove(block.getLocation()); + } blocksToDestroy.add(block); } } @@ -90,6 +95,10 @@ public class ExplosiveTool extends SimpleSlimefunItem implements } else { for (Block block : blocks) { if (canBreak(p, block)) { + if (Slimefun.getIntegrations().isCustomBlock(block)) { + drops.addAll(CustomBlock.byAlreadyPlaced(block).getLoot()); + CustomBlock.remove(block.getLocation()); + } blocksToDestroy.add(block); } } @@ -137,8 +146,6 @@ public class ExplosiveTool extends SimpleSlimefunItem implements return false; } else if (!b.getWorld().getWorldBorder().isInside(b.getLocation())) { return false; - } else if (Slimefun.getIntegrations().isCustomBlock(b)) { - return false; } else { return Slimefun.getProtectionManager().hasPermission(p, b.getLocation(), Interaction.BREAK_BLOCK); } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/integrations/IntegrationsManager.java b/src/main/java/io/github/thebusybiscuit/slimefun4/integrations/IntegrationsManager.java index 579e5bfb6..5063884c5 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/integrations/IntegrationsManager.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/integrations/IntegrationsManager.java @@ -6,6 +6,7 @@ import java.util.logging.Level; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; +import dev.lone.itemsadder.api.CustomBlock; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Server; @@ -236,7 +237,7 @@ public class IntegrationsManager { public boolean isCustomBlock(@Nonnull Block block) { if (isItemsAdderInstalled) { try { - return ItemsAdder.isCustomBlock(block); + return CustomBlock.byAlreadyPlaced(block) != null; } catch (Exception | LinkageError x) { logError("ItemsAdder", x); }