From 8011bc3f78dbc4ecebc079d641a1905ec7335505 Mon Sep 17 00:00:00 2001 From: Soper Date: Wed, 5 May 2021 03:09:38 -0400 Subject: [PATCH] needs to cancel right click mortar event before arrow check is done --- .../arty/event/Listener/MortarInteract.java | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/src/xyz/soper/arty/event/Listener/MortarInteract.java b/src/xyz/soper/arty/event/Listener/MortarInteract.java index 6776297..bee1611 100644 --- a/src/xyz/soper/arty/event/Listener/MortarInteract.java +++ b/src/xyz/soper/arty/event/Listener/MortarInteract.java @@ -23,28 +23,24 @@ public class MortarInteract implements Listener { Player player = event.getPlayer(); ItemStack item = player.getInventory().getItemInMainHand(); Block block = event.getClickedBlock(); - if((item.getType() == Material.ARROW) + if((block != null + && item.getType() == Material.ARROW) && item.hasItemMeta() && item.getItemMeta().hasDisplayName() - && item.getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Shell")){ - if(block == null) { - player.sendMessage("Block is null."); - return; - } - else if(block.getBlockData().getMaterial() == Material.BREWING_STAND){ - player.sendMessage("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("Block is a mortar."); - if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true); - 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); - } + && 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); } } }