How can I remove a renamed Item from inventory Code:java pl.getInventory().removeItem(new ItemStack(Material.IRON_INGOT)); but the iron ingot is renamed ?
Dont use new ItemStack Get the items in the players inventory, loop over them Then get the name of the item and check if it is the name you want Get the inventory and remove the item. Heres some code: Code:java for (ItemStack i : p.getInventory().getContents()) { if (i.getType().equals(Material.IRON_INGOT)) { ItemMeta im = i.getItemMeta(); if (im.getDisplayName() != null) { String displayName = im.getDisplayName(); if (displayName.equals("NAME")) { p.getInventory().remove(i); } } }}
With my code how could I do that? Code:java if ((event.getAction() == Action.RIGHT_CLICK_AIR) || (event.getAction() == Action.RIGHT_CLICK_BLOCK)){ if ((pl.getItemInHand().getType()==Material.IRON_INGOT)){ if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 0)){ if (event.getPlayer().getHealth() < 20 - canned + 0.01){ pl.setHealth(event.getPlayer().getHealth() + canned); } else if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 20 - canned)){ event.getPlayer().setHealth(20); } } if ((event.getPlayer().getFoodLevel() < 20)){ if (event.getPlayer().getFoodLevel() < 20 - pasta + 0.01){ event.getPlayer().setFoodLevel(event.getPlayer().getFoodLevel() + pasta); } else if ((event.getPlayer().getFoodLevel() < 20) && (event.getPlayer().getFoodLevel() > 20 - pasta)){ event.getPlayer().setFoodLevel(20); } } pl.getWorld().dropItemNaturally(pl.getLocation(), new ItemStack(Material.EGG)); pl.getInventory().removeItem(new ItemStack(Material.IRON_INGOT)); event.setUseItemInHand(Event.Result.DENY); this.cooldowns.put(playername, Long.valueOf(System.currentTimeMillis()));
OK Code:java if ((event.getAction() == Action.RIGHT_CLICK_AIR) || (event.getAction() == Action.RIGHT_CLICK_BLOCK)){ if ((pl.getItemInHand().getType()==Material.IRON_INGOT)){ if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 0)){ if (event.getPlayer().getHealth() < 20 - canned + 0.01){ pl.setHealth(event.getPlayer().getHealth() + canned); } else if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 20 - canned)){ event.getPlayer().setHealth(20); } } if ((event.getPlayer().getFoodLevel() < 20)){ if (event.getPlayer().getFoodLevel() < 20 - pasta + 0.01){ event.getPlayer().setFoodLevel(event.getPlayer().getFoodLevel() + pasta); } else if ((event.getPlayer().getFoodLevel() < 20) && (event.getPlayer().getFoodLevel() > 20 - pasta)){ event.getPlayer().setFoodLevel(20); } } pl.getWorld().dropItemNaturally(pl.getLocation(), new ItemStack(Material.EGG)); //Under it is my actual code to remove iron however I need to rename it for chatcolor.blue + "Canned Bean" I will rename by game not by plugin pl.getInventory().removeItem(new ItemStack(Material.IRON_INGOT)); event.setUseItemInHand(Event.Result.DENY); this.cooldowns.put(playername, Long.valueOf(System.currentTimeMillis()));
Code: for (ItemStack is : pl.getInventory().getContents()) { ItemMeta im = is.getItemMeta(); if (im.getDisplayName.equals(ChatColor.BLUE/AQUA/DARK_BLUE/DARK_AQUA + "Canned Bean")) { pl.getInventory().remove(is); } }
Try this: Code:java if ((event.getAction() == Action.RIGHT_CLICK_AIR) || (event.getAction() == Action.RIGHT_CLICK_BLOCK)){ItemStack cannedBeansIS = new ItemStack(Material.IRON_INGOT, 1);ItemMeta cannedBeansIM = cannedBeansIS.getItemMeta();cannedBeansIM.setDisplayName(ChatColor.BLUE + "Canned Beans");cannedBeansIS.setItemMeta(cannedBeansIM);if ((pl.getItemInHand().equals(cannedBeansIS)){//Then the player right clicked with the canned beans sofor (ItemStack is : pl.getInventory().getContents()) { if (is.equals(cannedBeansIS)) { pl.getInventory().remove(is){ break; }}//DO YOUR OTHER CODE HERE}