diff --git a/src/xyz/soper/arty/event/Listener/MortarInteract.java b/src/xyz/soper/arty/event/Listener/MortarInteract.java index bee1611..f451753 100644 --- a/src/xyz/soper/arty/event/Listener/MortarInteract.java +++ b/src/xyz/soper/arty/event/Listener/MortarInteract.java @@ -23,24 +23,26 @@ public class MortarInteract implements Listener { Player player = event.getPlayer(); ItemStack item = player.getInventory().getItemInMainHand(); Block block = event.getClickedBlock(); - if((block != null - && item.getType() == Material.ARROW) - && item.hasItemMeta() - && item.getItemMeta().hasDisplayName() - && item.getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Shell") - && block.getBlockData().getMaterial() == Material.BREWING_STAND){ - player.sendMessage("Block is an brewing stand."); - if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true); - Nameable brewingStandMortar = (Nameable) event.getClickedBlock().getState(); - String blockName = brewingStandMortar.getCustomName(); - if(blockName == null) return; - if(blockName.equals(ChatColor.GRAY + "Basic Mortar") - || blockName.equals(ChatColor.GRAY + "Mortar")){ - player.sendMessage("Block is a mortar."); - MortarHandler mortarHandler = new MortarHandler(new Mortar(block)); - mortarHandler.fireShell(new Shell(item)); - if(item.getAmount() > 1) item.setAmount(item.getAmount()-1); - else player.getInventory().setItemInMainHand(null); + boolean isBlockNull = (block == null); + + if(!isBlockNull){ + if(block.getBlockData().getMaterial() == Material.BREWING_STAND){ + player.sendMessage("DEBUG: Block is an brewing stand."); + Nameable brewingStandMortar = (Nameable) event.getClickedBlock().getState(); + String blockName = brewingStandMortar.getCustomName(); + if(blockName == null) return; + if(blockName.equals(ChatColor.GRAY + "Basic Mortar") + || blockName.equals(ChatColor.GRAY + "Mortar")){ + player.sendMessage("DEBUG: Block is a mortar."); + if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true); + if(Shell.isShell(item)){ + player.sendMessage("DEBUG: Player has a shell in hand."); + MortarHandler mortarHandler = new MortarHandler(new Mortar(block)); + mortarHandler.fireShell(new Shell(item)); + if(item.getAmount() > 1) item.setAmount(item.getAmount()-1); + else player.getInventory().setItemInMainHand(null); + } + } } } }