diff --git a/src/main/java/me/mrCookieSlime/Slimefun/listeners/ToolListener.java b/src/main/java/me/mrCookieSlime/Slimefun/listeners/ToolListener.java index 4f086888d..3393a13a7 100644 --- a/src/main/java/me/mrCookieSlime/Slimefun/listeners/ToolListener.java +++ b/src/main/java/me/mrCookieSlime/Slimefun/listeners/ToolListener.java @@ -13,6 +13,7 @@ import org.bukkit.Material; import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; +import org.bukkit.block.BlockState; import org.bukkit.block.TileState; import org.bukkit.enchantments.Enchantment; import org.bukkit.event.EventHandler; @@ -75,10 +76,11 @@ public class ToolListener implements Listener { e.setCancelled(true); } else { - boolean supportsPersistentData = e.getBlock().getState() instanceof TileState; + BlockState state = e.getBlock().getState(); + boolean supportsPersistentData = state instanceof TileState; if (supportsPersistentData) { - SlimefunPlugin.getBlockDataService().setBlockData((TileState) e.getBlock().getState(), sfItem.getID()); + SlimefunPlugin.getBlockDataService().setBlockData((TileState) state, sfItem.getID()); } BlockStorage.addBlockInfo(e.getBlock(), "id", sfItem.getID(), true); @@ -200,11 +202,14 @@ public class ToolListener implements Listener { if (sensitiveMaterials.contains(block2.getType())) { SlimefunItem sfItem = BlockStorage.check(e.getBlock().getRelative(BlockFace.UP)); - if (sfItem == null && e.getBlock().getState() instanceof TileState) { - Optional blockData = SlimefunPlugin.getBlockDataService().getBlockData((TileState) e.getBlock().getState()); - - if (blockData.isPresent()) { - sfItem = SlimefunItem.getByID(blockData.get()); + if (sfItem == null) { + BlockState state = block2.getState(); + if (state instanceof TileState) { + Optional blockData = SlimefunPlugin.getBlockDataService().getBlockData((TileState) state); + + if (blockData.isPresent()) { + sfItem = SlimefunItem.getByID(blockData.get()); + } } } @@ -227,11 +232,15 @@ public class ToolListener implements Listener { SlimefunItem sfItem = BlockStorage.check(e.getBlock()); - if (sfItem == null && e.getBlock().getState() instanceof TileState) { - Optional blockData = SlimefunPlugin.getBlockDataService().getBlockData((TileState) e.getBlock().getState()); + if (sfItem == null) { + BlockState state = e.getBlock().getState(); - if (blockData.isPresent()) { - sfItem = SlimefunItem.getByID(blockData.get()); + if (state instanceof TileState) { + Optional blockData = SlimefunPlugin.getBlockDataService().getBlockData((TileState) state); + + if (blockData.isPresent()) { + sfItem = SlimefunItem.getByID(blockData.get()); + } } }