Give Item On Command

Discussion in 'Plugin Development' started by xDUBSTEPx, Sep 24, 2011.

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

    xDUBSTEPx

    Hi just wondering if someone could help me with this code
    what im trying to do is make a command were you type
    /item player gives the selected player an item like dirt and
    broadcasts giveing [player] an item this would be very helpful
    thanks :) this is my code so far

    SHOW (open)

    Code:
    package xDUBSTEPx.Test;
    
    import java.util.logging.Logger;
      
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.inventory.ItemStack;
    public class Donate extends JavaPlugin {
    
        public static Test plugin;
        public static final Logger log = Logger.getLogger("Minecraft");
     
        @SuppressWarnings("unused")
        private Object player;
        @SuppressWarnings("unused")
        private ChatColor message;
     
        @SuppressWarnings("unused")
        @Override
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
      
            log.info("[Test] Plugin enabled.");
        }
     
        @Override
        public void onDisable() {
            log.info("[Test] Plugin disabled.");
        }
    
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (label.equalsIgnoreCase("item")) {
                Player player = (Player) sender;
               ItemStack IS = new ItemStack(Material.COOKIE, 1);
               PlayerInventory inventory = player.getInventory();
                inventory.addItem(IS);
               return true;
            }
           return false;
     }
    }


     
  2. Offline

    ItsHarry

    Well, first you need to get the player of the event:


    Code:
    onCommand(CommandSender sender, Command command, String label, String[] args) {
        Player player = (Player) sender;
    }

    Then you need to get the inventory of the player:
    Code:
    PlayerInventory inventory = player.getInventory();
    Then last, you give the dirt to the player:

    Code:
    inventory.addItem(new ItemStack(Material.Dirt));
    Whole code would be something like this:
    Code:
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (label.equalsIgnoreCase("item")) {
            Player player = (Player) sender;
            PlayerInventory inventory = player.getInventory();
            inventory.addItem(new ItemStack(Material.dirt));
            return true;
        }
        return false;
    }
     
  3. Offline

    xDUBSTEPx

    This Hole Part Of The Line Is Red Please Help :(
    Code:
    addItem(new ItemStack(Material.DIRT));
    SHOW (open)

    Code:
    package xDUBSTEPx.Test;
    
    import java.util.logging.Logger;
    
    import net.minecraft.server.ItemStack;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    public class Test extends JavaPlugin {
    
        public static Test plugin;
        public static final Logger log = Logger.getLogger("Minecraft");
     
        @SuppressWarnings("unused")
        private Object player;
        @SuppressWarnings("unused")
        private ChatColor message;
        private String msg;
    
        @SuppressWarnings("unused")
        @Override
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
      
            log.info("[Test] Plugin enabled.");
        }
     
        @Override
        public void onDisable() {
            log.info("[Test] Plugin disabled.");
        }
    
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (label.equalsIgnoreCase("item")) {
                Player player = (Player) sender;
                PlayerInventory inventory = player.getInventory();
                inventory.addItem(new ItemStack(Material.DIRT));
                return true;
            }
            return false;
        }
    }
     
  4. Offline

    wwsean08

    did you import PlayerInventory
     
  5. Offline

    xDUBSTEPx

    yer it still dont work :(
    Code:
    import org.bukkit.inventory.PlayerInventory;
     
  6. Offline

    wwsean08

    ok what error is it giving you on that line?
     
  7. Offline

    xDUBSTEPx

    Under Lined Red And Says The constructor ItemStack(Material) is undefined
    Please help :(
     
  8. Offline

    wwsean08

    wait a sec i just noticed you missed some code in there, your code should be
    Code:
    inventory.addItem(new ItemStack(Material.DIRT));
    if it's not then fix that, if it is try chaing it to
    Code:
    inventory.addItem(new ItemStack(Material.DIRT.getId()));
    even though it shouldn't make a difference
     
  9. Offline

    xDUBSTEPx

    ok now i have this error [inventory.addItem(new ItemStack(Material.DIRT.getId()));]



    Ok Now I Have Done This
    Code:
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (label.equalsIgnoreCase("item")) {
                Player player = (Player) sender;
                PlayerInventory inventory = player.getInventory();
                inventory.addItem(new ItemStack(Material.DIRT.getId(), 0, 0));
                return true;
            }
            return false;
        }
    }
    But Now I Have This Error [inventory.addItem(new ItemStack(Material.DIRT.getId(), 0, 0));]
    And The Error Says
    Code:
    The method addItem(ItemStack...) in the type Inventory is not applicable for the arguments (ItemStack)
    Please Help :(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 20, 2016
  10. Offline

    wwsean08

    ok lets just make an item stack outside of there, so make the code:

    Code:
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
             if (label.equalsIgnoreCase("item")) {
                 Player player = (Player) sender;
                ItemStack IS = new ItemStack(Material.DIRT, 1);
                PlayerInventory inventory = player.getInventory();
                 inventory.addItem(IS);
                return true;
             }
            return false;
      }
     }
    
     
  11. Offline

    xDUBSTEPx

    Error here ItemStack IS = new ItemStack(Material.DIRT, 1);
    Error here inventory.addItem(IS); :'(
     
  12. Offline

    wwsean08

    wtf that shouldn't be erroring, check to make sure you imported item stack because that code works for me (i just tested it)
     
  13. Offline

    xDUBSTEPx

    But The Bad Thing Is I Have :(
    Code:
    import net.minecraft.server.ItemStack;
    UPDATED CODE (open)

    Code:
    package xDUBSTEPx.Test;
    
    import java.util.logging.Logger;
    
    import net.minecraft.server.ItemStack;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    public class Test extends JavaPlugin {
    
        public static Test plugin;
        public static final Logger log = Logger.getLogger("Minecraft");
     
        @SuppressWarnings("unused")
        private Object player;
        @SuppressWarnings("unused")
        private ChatColor message;
        private String msg;
    
        @SuppressWarnings("unused")
        @Override
        public void onEnable() {
            PluginManager pm = getServer().getPluginManager();
      
            log.info("[Test] Plugin enabled.");
        }
     
        @Override
        public void onDisable() {
            log.info("[Test] Plugin disabled.");
        }
    
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (label.equalsIgnoreCase("item")) {
                Player player = (Player) sender;
               ItemStack IS = new ItemStack(Material.DIRT, 1);
               PlayerInventory inventory = player.getInventory();
                inventory.addItem(IS);
               return true;
            }
           return false;
     }
    }


    Please help i have posted this thread
    like 5 times and your like the only person that has
    helped me this far :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 20, 2016
  14. Offline

    Feed_Dante

    Wrong import
    import org.bukkit.inventory.ItemStack


    Make sure you're using:
    bukkit-0.0.1-SNAPSHOT.jar
    and not:
    craftbukkit-0.0.1-SNAPSHOT.jar
     
  15. Offline

    xDUBSTEPx

    Syntax error on token "ItemStack", ; expected after this token
     
  16. Offline

    Feed_Dante

    Just:
    import org.bukkit.inventory
     
  17. Offline

    xDUBSTEPx

    Only a type can be imported. org.bukkit.inventory resolves to a package
     
  18. Offline

    Feed_Dante

    Then I was right the first time. Did you actually check to see if the import had a semicolon after it like all the others do?
    Y'know, the error that told you how to fix itself? "; expected after this token"
     
  19. Offline

    xDUBSTEPx

    Hay your right thanks

    Lol i just forgot i needed a player command in the code /item player
    giveing the choosen player and item

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 20, 2016
  20. Offline

    Kaikz

    _diam likes this.
  21. Offline

    xDUBSTEPx

    i know how to make the basics i just want this code so bad
     
Thread Status:
Not open for further replies.

Share This Page