Removing A Certian Amount Of Items From A Players Inventory

Discussion in 'Plugin Development' started by yewtree8, Apr 17, 2014.

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

    yewtree8

    Ok so i want to make it so if the player right clicks the block then it checks if they have 35 gold ingots and if they do it removes them from the players inventory, i've tried everything but nothing seems to work? can someone help me?

    Code:java
    1. package me.mat.mysterybox;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.block.Block;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.block.Action;
    10. import org.bukkit.event.player.PlayerInteractEvent;
    11. import org.bukkit.inventory.Inventory;
    12. import org.bukkit.inventory.PlayerInventory;
    13.  
    14. public class BoxListener implements Listener {
    15.  
    16.  
    17. @EventHandler
    18. public void BoxInteract(PlayerInteractEvent event) {
    19. Player player = event.getPlayer();
    20. Action action = event.getAction();
    21. Inventory inv = player.getInventory();
    22. PlayerInventory pi = player.getInventory();
    23. Material block = event.getClickedBlock().getType();
    24. if(action == Action.RIGHT_CLICK_BLOCK) {
    25. if(block == Material.PISTON_BASE) {
    26. if(player.getInventory().contains(Material.GOLD_INGOT, 35)) {
    27. pi.remove(Material.GOLD_INGOT); //Here i want it to take the 35 ingots away so i can do more, how can i do this?
    28.  
    29.  
    30.  
    31. } else {
    32.  
    33. player.sendMessage(ChatColor.RED + "You Do Not Have 35 Gold Ingots");
    34. }
    35.  
    36. } return;
    37.  
    38. } return;
    39.  
    40. }
    41.  
    42. }
    43.  




    Thanks guys i hope you can help
     
  2. Offline

    MrInspector

    yewtree8
    Something like this I believe.
    Code:java
    1. player.getInventory().remove(new ItemStack(Material.GOLD_INGOT, amount));
     
  3. Offline

    yewtree8

    MrInspector It didn't give an error, but doesn't work, i tried updating the inventory but it just crosses it out? any ideas
     
  4. Offline

    MrInspector

    Quickly add a debug message under the code I provided you with (something like a broadcast or print a message) and see if it either broadcasts or prints a message or whatever.
     
  5. Offline

    yewtree8

    MrInspector I added the message, it gives me the message but doesn't take the gold ingots?
     
  6. Offline

    MrInspector

    er try this
    Code:java
    1. player.getInventory().removeItem(new ItemStack(Material.GOLD_INGOT, 35));
     
  7. Offline

    yewtree8

    MrInspector FIXED :D It was
    Code:
    public class BoxListener implements Listener {
     
       
        @EventHandler
        public void BoxInteract(PlayerInteractEvent event) {
            Player player = event.getPlayer();
            Action action = event.getAction();
            Inventory inv = player.getInventory();
            PlayerInventory pi = player.getInventory();
            Material block = event.getClickedBlock().getType();
            if(action == Action.RIGHT_CLICK_BLOCK) {
                if(block == Material.PISTON_BASE) {
                    if(player.getInventory().contains(Material.GOLD_INGOT, 35)) {
                        player.getInventory().remove(new ItemStack(Material.GOLD_INGOT, 35));
                        player.sendMessage("This Has Worked");
                   
                       
                    } else if(!player.getInventory().contains(Material.GOLD_INGOT, 35)){
                       
                        player.sendMessage(ChatColor.RED + "You Do Not Have 35 Gold Ingots");
                       
                    }
                   
                } return;
               
            } return;
           
        }
       
    }
     
  8. Offline

    MrInspector

    Glad to help. :)

    Good luck!
     
Thread Status:
Not open for further replies.

Share This Page