mortar and shell checks now execute in correct order

This commit is contained in:
Soper Aylamo 2021-05-09 03:08:03 -04:00
parent 6235611847
commit 6962b2f80e

View File

@ -23,24 +23,26 @@ 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((block != null boolean isBlockNull = (block == null);
&& item.getType() == Material.ARROW)
&& item.hasItemMeta() if(!isBlockNull){
&& item.getItemMeta().hasDisplayName() if(block.getBlockData().getMaterial() == Material.BREWING_STAND){
&& item.getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Shell") player.sendMessage("DEBUG: Block is an brewing stand.");
&& block.getBlockData().getMaterial() == Material.BREWING_STAND){ Nameable brewingStandMortar = (Nameable) event.getClickedBlock().getState();
player.sendMessage("Block is an brewing stand."); String blockName = brewingStandMortar.getCustomName();
if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true); 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("DEBUG: Block is a mortar.");
if(blockName.equals(ChatColor.GRAY + "Basic Mortar") if(event.getAction() == Action.RIGHT_CLICK_BLOCK) event.setCancelled(true);
|| blockName.equals(ChatColor.GRAY + "Mortar")){ if(Shell.isShell(item)){
player.sendMessage("Block is a mortar."); player.sendMessage("DEBUG: Player has a shell in hand.");
MortarHandler mortarHandler = new MortarHandler(new Mortar(block)); MortarHandler mortarHandler = new MortarHandler(new Mortar(block));
mortarHandler.fireShell(new Shell(item)); mortarHandler.fireShell(new Shell(item));
if(item.getAmount() > 1) item.setAmount(item.getAmount()-1); if(item.getAmount() > 1) item.setAmount(item.getAmount()-1);
else player.getInventory().setItemInMainHand(null); else player.getInventory().setItemInMainHand(null);
}
}
} }
} }
} }