Remove Item

Discussion in 'Plugin Development' started by Licio123, Apr 22, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    Licio123

    How can I remove a renamed Item from inventory

    Code:java
    1. pl.getInventory().removeItem(new ItemStack(Material.IRON_INGOT));

    but the iron ingot is renamed
    ?
     
  2. Offline

    Heirteir

    You create a itemstack that is an exact replica of the iron ingot
    then you type .removeItem(Item);
     
  3. Offline

    Licio123

    Thank you
     
  4. 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
    1. for (ItemStack i : p.getInventory().getContents()) {
    2. if (i.getType().equals(Material.IRON_INGOT)) {
    3. ItemMeta im = i.getItemMeta();
    4. if (im.getDisplayName() != null) {
    5. String displayName = im.getDisplayName();
    6. if (displayName.equals("NAME")) {
    7. p.getInventory().remove(i);
    8. }
    9. }
    10. }
    11. }
     
  5. Offline

    Licio123

    And how can I do this if the Item is renamed with a Color?
    CHatcolr.BLUE
     
  6. Or that xD
     
  7. Offline

    Licio123

    With my code how could I do that?
    Code:java
    1. if ((event.getAction() == Action.RIGHT_CLICK_AIR) || (event.getAction() == Action.RIGHT_CLICK_BLOCK)){
    2. if ((pl.getItemInHand().getType()==Material.IRON_INGOT)){
    3. if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 0)){
    4. if (event.getPlayer().getHealth() < 20 - canned + 0.01){
    5. pl.setHealth(event.getPlayer().getHealth() + canned);
    6. }
    7. else if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 20 - canned)){
    8. event.getPlayer().setHealth(20);
    9. }
    10. }
    11. if ((event.getPlayer().getFoodLevel() < 20)){
    12. if (event.getPlayer().getFoodLevel() < 20 - pasta + 0.01){
    13. event.getPlayer().setFoodLevel(event.getPlayer().getFoodLevel() + pasta);
    14. }
    15. else if ((event.getPlayer().getFoodLevel() < 20) && (event.getPlayer().getFoodLevel() > 20 - pasta)){
    16. event.getPlayer().setFoodLevel(20);
    17.  
    18. }
    19. }
    20. pl.getWorld().dropItemNaturally(pl.getLocation(), new ItemStack(Material.EGG));
    21. pl.getInventory().removeItem(new ItemStack(Material.IRON_INGOT));
    22. event.setUseItemInHand(Event.Result.DENY);
    23. this.cooldowns.put(playername, Long.valueOf(System.currentTimeMillis()));
     
  8. Please put a //Here comment where you want to remove it from the inventory so I know where to start :D
     
  9. Offline

    Licio123

    OK
    Code:java
    1. if ((event.getAction() == Action.RIGHT_CLICK_AIR) || (event.getAction() == Action.RIGHT_CLICK_BLOCK)){
    2. if ((pl.getItemInHand().getType()==Material.IRON_INGOT)){
    3. if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 0)){
    4. if (event.getPlayer().getHealth() < 20 - canned + 0.01){
    5. pl.setHealth(event.getPlayer().getHealth() + canned);
    6. }
    7. else if ((event.getPlayer().getHealth() < 20) && (event.getPlayer().getHealth() > 20 - canned)){
    8. event.getPlayer().setHealth(20);
    9. }
    10. }
    11. if ((event.getPlayer().getFoodLevel() < 20)){
    12. if (event.getPlayer().getFoodLevel() < 20 - pasta + 0.01){
    13. event.getPlayer().setFoodLevel(event.getPlayer().getFoodLevel() + pasta);
    14. }
    15. else if ((event.getPlayer().getFoodLevel() < 20) && (event.getPlayer().getFoodLevel() > 20 - pasta)){
    16. event.getPlayer().setFoodLevel(20);
    17.  
    18. }
    19. }
    20. pl.getWorld().dropItemNaturally(pl.getLocation(), new ItemStack(Material.EGG));
    21. //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
    22. pl.getInventory().removeItem(new ItemStack(Material.IRON_INGOT));
    23. event.setUseItemInHand(Event.Result.DENY);
    24. this.cooldowns.put(playername, Long.valueOf(System.currentTimeMillis()));
     
  10. 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);
      }
    }
     
  11. Offline

    Licio123

    can u put it in the code cuz I am embaressed with it
    this is new for me
     
  12. Try this:
    Code:java
    1. if ((event.getAction() == Action.RIGHT_CLICK_AIR) || (event.getAction() == Action.RIGHT_CLICK_BLOCK)){
    2. ItemStack cannedBeansIS = new ItemStack(Material.IRON_INGOT, 1);
    3. ItemMeta cannedBeansIM = cannedBeansIS.getItemMeta();
    4. cannedBeansIM.setDisplayName(ChatColor.BLUE + "Canned Beans");
    5. cannedBeansIS.setItemMeta(cannedBeansIM);
    6. if ((pl.getItemInHand().equals(cannedBeansIS)){
    7. //Then the player right clicked with the canned beans so
    8. for (ItemStack is : pl.getInventory().getContents()) {
    9. if (is.equals(cannedBeansIS)) {
    10. pl.getInventory().remove(is){
    11. break;
    12. }
    13. }
    14. //DO YOUR OTHER CODE HERE
    15. }
     
Thread Status:
Not open for further replies.

Share This Page