needs to cancel right click mortar event before arrow check is done

This commit is contained in:
Soper Aylamo 2021-05-05 03:09:38 -04:00
parent 99539fea58
commit 8011bc3f78
Signed by: Soper
GPG Key ID: A27AC885ACC3BEAE

View File

@ -23,28 +23,24 @@ public class MortarInteract implements Listener {
Player player = event.getPlayer(); Player player = event.getPlayer();
ItemStack item = player.getInventory().getItemInMainHand(); ItemStack item = player.getInventory().getItemInMainHand();
Block block = event.getClickedBlock(); Block block = event.getClickedBlock();
if((item.getType() == Material.ARROW) if((block != null
&& item.getType() == Material.ARROW)
&& item.hasItemMeta() && item.hasItemMeta()
&& item.getItemMeta().hasDisplayName() && item.getItemMeta().hasDisplayName()
&& item.getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Shell")){ && item.getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Shell")
if(block == null) { && block.getBlockData().getMaterial() == Material.BREWING_STAND){
player.sendMessage("Block is null."); player.sendMessage("Block is an brewing stand.");
return; if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true);
} Nameable brewingStandMortar = (Nameable) event.getClickedBlock().getState();
else if(block.getBlockData().getMaterial() == Material.BREWING_STAND){ String blockName = brewingStandMortar.getCustomName();
player.sendMessage("Block is an brewing stand."); if(blockName == null) return;
Nameable brewingStandMortar = (Nameable) event.getClickedBlock().getState(); if(blockName.equals(ChatColor.GRAY + "Basic Mortar")
String blockName = brewingStandMortar.getCustomName(); || blockName.equals(ChatColor.GRAY + "Mortar")){
if(blockName == null) return; player.sendMessage("Block is a mortar.");
if(blockName.equals(ChatColor.GRAY + "Basic Mortar") MortarHandler mortarHandler = new MortarHandler(new Mortar(block));
|| blockName.equals(ChatColor.GRAY + "Mortar")){ mortarHandler.fireShell(new Shell(item));
player.sendMessage("Block is a mortar."); if(item.getAmount() > 1) item.setAmount(item.getAmount()-1);
if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true); else player.getInventory().setItemInMainHand(null);
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);
}
} }
} }
} }