Command not even running?

Discussion in 'Spigot Plugin Development' started by Distorts, Jun 26, 2016.

  1. Hello, i am trying to make a custom sell plugin for my drugs server and the command doesnt even run could someone help me with this problem? also give me some pointers on cleaning up this code and im not getting any stack trace in the console btw

    Code (Text):
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if (cmd.getName().equalsIgnoreCase("selldrugs")) {
                if (!(sender instanceof Player)) {
                    sender.sendMessage("You are not a player.");
                    return true;
                }
                Player p = (Player) sender;
                ItemStack weed = new ItemStack(Material.WHEAT, 1);
                ItemMeta weedIM = weed.getItemMeta();
                ItemStack coke = new ItemStack(Material.SUGAR, 1);
                ItemMeta cokeIM = coke.getItemMeta();
                ItemStack meth = new ItemStack(Material.NETHER_STALK, 1);
                ItemMeta methIM = meth.getItemMeta();
                ItemStack shrooms = new ItemStack(Material.RED_MUSHROOM, 1);
                ItemMeta shroomsIM = shrooms.getItemMeta();
                Inventory i = p.getInventory();
                if (p.getInventory().contains(Material.WHEAT) || (p.getInventory().contains(Material.SUGAR)) || (p.getInventory().contains(Material.RED_MUSHROOM)) || p.getInventory().contains(Material.NETHER_STALK)) {
                    if (weedIM.getLore() == Arrays.asList("&aPurity Level 1") || (cokeIM.getLore() == Arrays.asList("&aPurity Level 1")) || (shroomsIM.getLore() == Arrays.asList("&aPurity Level 1")) || (methIM.getLore() == Arrays.asList("&aPurity Level 1"))) {
                        for (ItemStack item : i.getContents()) {
                            switch (item.getType()) {
                                case WHEAT:
                                    int amountOfWeed = item.getAmount();
                                    int depositWeedMoney = item.getAmount() * 15;
                                    econ.bankDeposit(p.getName(), depositWeedMoney);
                                    i.remove(new ItemStack(Material.WHEAT));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a " + amountOfWeed + " &7weed for &8$&a" + depositWeedMoney));
                                    break;
                                case NETHER_STALK:
                                    int amountOfMeth = item.getAmount();
                                    int depositMethMoney = item.getAmount() * 15;
                                    econ.bankDeposit(p.getName(), depositMethMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfMeth + " &7meth for &8$&a" + depositMethMoney));
                                    break;
                                case SUGAR:
                                    int amountOfCocaine = item.getAmount();
                                    int depositCocaineMoney = item.getAmount() * 15;
                                    econ.bankDeposit(p.getName(), depositCocaineMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfCocaine + " &7Cocaine for &8$&a" + depositCocaineMoney));
                                    break;
                                case RED_MUSHROOM:
                                    int amountOfShrooms = item.getAmount();
                                    int depositShroomMoney = item.getAmount() * 15;
                                    econ.bankDeposit(p.getName(), depositShroomMoney);
                                    i.remove(new ItemStack(Material.RED_MUSHROOM));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfShrooms + " &7Cocaine for &8$&a" + depositShroomMoney));
                                    break;
                                default:
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 The only drugs are&8:"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&cShrooms"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&aWeed"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&9Meth"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&fCocaine"));
                            }
                        }
                    }
                    if (weedIM.getLore() == Arrays.asList("&aPurity Level 2") || (cokeIM.getLore() == Arrays.asList("&aPurity Level 2")) || (shroomsIM.getLore() == Arrays.asList("&aPurity Level 2")) || (methIM.getLore() == Arrays.asList("&aPurity Level 2"))) {
                        for (ItemStack item : i.getContents()) {
                            switch (item.getType()) {
                                case WHEAT:
                                    int amountOfWeed = item.getAmount();
                                    int depositWeedMoney = item.getAmount() * 25;
                                    econ.bankDeposit(p.getName(), depositWeedMoney);
                                    i.remove(new ItemStack(Material.WHEAT));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a " + amountOfWeed + " &7weed for &8$&a" + depositWeedMoney));
                                    break;
                                case NETHER_STALK:
                                    int amountOfMeth = item.getAmount();
                                    int depositMethMoney = item.getAmount() * 25;
                                    econ.bankDeposit(p.getName(), depositMethMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfMeth + " &7meth for &8$&a" + depositMethMoney));
                                    break;
                                case SUGAR:
                                    int amountOfCocaine = item.getAmount();
                                    int depositCocaineMoney = item.getAmount() * 25;
                                    econ.bankDeposit(p.getName(), depositCocaineMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfCocaine + " &7Cocaine for &8$&a" + depositCocaineMoney));
                                    break;
                                case RED_MUSHROOM:
                                    int amountOfShrooms = item.getAmount();
                                    int depositShroomMoney = item.getAmount() * 25;
                                    econ.bankDeposit(p.getName(), depositShroomMoney);
                                    i.remove(new ItemStack(Material.RED_MUSHROOM));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfShrooms + " &7Cocaine for &8$&a" + depositShroomMoney));
                                    break;
                                default:
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 The only drugs are&8:"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&cShrooms"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&aWeed"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&9Meth"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&fCocaine"));
                            }
                        }
                    }
                    if (weedIM.getLore() == Arrays.asList("&aPurity Level 3") || (cokeIM.getLore() == Arrays.asList("&aPurity Level 3")) || (shroomsIM.getLore() == Arrays.asList("&aPurity Level 3")) || (methIM.getLore() == Arrays.asList("&aPurity Level 3"))) {
                        for (ItemStack item : i.getContents()) {
                            switch (item.getType()) {
                                case WHEAT:
                                    int amountOfWeed = item.getAmount();
                                    int depositWeedMoney = item.getAmount() * 40;
                                    econ.bankDeposit(p.getName(), depositWeedMoney);
                                    i.remove(new ItemStack(Material.WHEAT));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a " + amountOfWeed + " &7weed for &8$&a" + depositWeedMoney));
                                    break;
                                case NETHER_STALK:
                                    int amountOfMeth = item.getAmount();
                                    int depositMethMoney = item.getAmount() * 40;
                                    econ.bankDeposit(p.getName(), depositMethMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfMeth + " &7meth for &8$&a" + depositMethMoney));
                                    break;
                                case SUGAR:
                                    int amountOfCocaine = item.getAmount();
                                    int depositCocaineMoney = item.getAmount() * 40;
                                    econ.bankDeposit(p.getName(), depositCocaineMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfCocaine + " &7Cocaine for &8$&a" + depositCocaineMoney));
                                    break;
                                case RED_MUSHROOM:
                                    int amountOfShrooms = item.getAmount();
                                    int depositShroomMoney = item.getAmount() * 40;
                                    econ.bankDeposit(p.getName(), depositShroomMoney);
                                    i.remove(new ItemStack(Material.RED_MUSHROOM));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfShrooms + " &7Cocaine for &8$&a" + depositShroomMoney));
                                    break;
                                default:
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 The only drugs are&8:"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&cShrooms"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&aWeed"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&9Meth"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&fCocaine"));
                            }
                        }
                    }
                    if (weedIM.getLore() == Arrays.asList("&aPurity Level 4") || (cokeIM.getLore() == Arrays.asList("&aPurity Level 4")) || (shroomsIM.getLore() == Arrays.asList("&aPurity Level 4")) || (methIM.getLore() == Arrays.asList("&aPurity Level 4"))) {
                        for (ItemStack item : i.getContents()) {
                            switch (item.getType()) {
                                case WHEAT:
                                    int amountOfWeed = item.getAmount();
                                    int depositWeedMoney = item.getAmount() * 55;
                                    econ.bankDeposit(p.getName(), depositWeedMoney);
                                    i.remove(new ItemStack(Material.WHEAT));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a " + amountOfWeed + " &7weed for &8$&a" + depositWeedMoney));
                                    break;
                                case NETHER_STALK:
                                    int amountOfMeth = item.getAmount();
                                    int depositMethMoney = item.getAmount() * 55;
                                    econ.bankDeposit(p.getName(), depositMethMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfMeth + " &7meth for &8$&a" + depositMethMoney));
                                    break;
                                case SUGAR:
                                    int amountOfCocaine = item.getAmount();
                                    int depositCocaineMoney = item.getAmount() * 55;
                                    econ.bankDeposit(p.getName(), depositCocaineMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfCocaine + " &7Cocaine for &8$&a" + depositCocaineMoney));
                                    break;
                                case RED_MUSHROOM:
                                    int amountOfShrooms = item.getAmount();
                                    int depositShroomMoney = item.getAmount() * 55;
                                    econ.bankDeposit(p.getName(), depositShroomMoney);
                                    i.remove(new ItemStack(Material.RED_MUSHROOM));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfShrooms + " &7Cocaine for &8$&a" + depositShroomMoney));
                                    break;
                                default:
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 The only drugs are&8:"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&cShrooms"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&aWeed"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&9Meth"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&fCocaine"));
                            }
                        }
                    }
                    if (weedIM.getLore() == Arrays.asList("&aPurity Level 4") || (cokeIM.getLore() == Arrays.asList("&aPurity Level 4")) || (shroomsIM.getLore() == Arrays.asList("&aPurity Level 4")) || (methIM.getLore() == Arrays.asList("&aPurity Level 4"))) {
                        for (ItemStack item : i.getContents()) {
                            switch (item.getType()) {
                                case WHEAT:
                                    int amountOfWeed = item.getAmount();
                                    int depositWeedMoney = item.getAmount() * 65;
                                    econ.bankDeposit(p.getName(), depositWeedMoney);
                                    i.remove(new ItemStack(Material.WHEAT));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a " + amountOfWeed + " &7weed for &8$&a" + depositWeedMoney));
                                    break;
                                case NETHER_STALK:
                                    int amountOfMeth = item.getAmount();
                                    int depositMethMoney = item.getAmount() * 65;
                                    econ.bankDeposit(p.getName(), depositMethMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfMeth + " &7meth for &8$&a" + depositMethMoney));
                                    break;
                                case SUGAR:
                                    int amountOfCocaine = item.getAmount();
                                    int depositCocaineMoney = item.getAmount() * 65;
                                    econ.bankDeposit(p.getName(), depositCocaineMoney);
                                    i.remove(new ItemStack(Material.NETHER_STALK));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfCocaine + " &7Cocaine for &8$&a" + depositCocaineMoney));
                                    break;
                                case RED_MUSHROOM:
                                    int amountOfShrooms = item.getAmount();
                                    int depositShroomMoney = item.getAmount() * 65;
                                    econ.bankDeposit(p.getName(), depositShroomMoney);
                                    i.remove(new ItemStack(Material.RED_MUSHROOM));
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 You sold &a" + amountOfShrooms + " &7Cocaine for &8$&a" + depositShroomMoney));
                                    break;
                                default:
                                    p.sendMessage(StringUtil.formatColor("&8[&aKush&8]&7 The only drugs are&8:"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&cShrooms"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&aWeed"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&9Meth"));
                                    p.sendMessage(StringUtil.formatColor("    &8-&fCocaine"));
                            }
                        }
                    }
                }
            }
            return false;
        }
     
  2. weedIM.getLore() == Arrays.asList("&aPurity Level 1")

    You're checking if the item you just created has the lore "&aPurity Level 1", which it won't.
    Also, getLore() will throw a NPE.
     
  3. The item is already created in game @stoneminer02 so how would i go about doing that?
     
  4. By using the meta data and lore of the item ingame.
     
  5. Did you register the command?
     
  6. @ReadySetPawn Yes.
    @stoneminer02 explain i am very new to using item meta's and etc thats why i was using the way i was because i have no idea how
     
  7. Please don't bump within 24 hours. Be patient. And learn to debug your code.
     
  8. How did you register the Command?
    Any Errors?
    Correct plugin.yml?



    Send from my iPhone 6 Plus with Tapatalk.
     
  9. yes the command is registered and the plugin.yml is fine


    Sent from my iPhone using Tapatalk
     
  10. and no errors i console @GoRoK


    Sent from my iPhone using Tapatalk
     
  11. show us where you registered the command and show us your plugin.yml

    don't need it actually, @stoneminer02 already answered this entire thread

    Code (Java):
    weedIM.getLore() == Arrays.asList("&aPurity Level 4") || (cokeIM.getLore() == Arrays.asList("&aPurity Level 4")) || (shroomsIM.getLore() == Arrays.asList("&aPurity Level 4")) || (methIM.getLore() == Arrays.asList("&aPurity Level 4"))
    Your code get's stopped here because you have to use .equals not == because Arrays are not a primitive data type (I think that's the usage) for example booleans are which is why you can use == true etc
     
  12. Partially right.
    The big part is here:
    Code (Java):
                ItemStack weed = new ItemStack(Material.WHEAT, 1);
                ItemMeta weedIM = weed.getItemMeta();
                ItemStack coke = new ItemStack(Material.SUGAR, 1);
                ItemMeta cokeIM = coke.getItemMeta();
                ItemStack meth = new ItemStack(Material.NETHER_STALK, 1);
                ItemMeta methIM = meth.getItemMeta();
                ItemStack shrooms = new ItemStack(Material.RED_MUSHROOM, 1);
                ItemMeta shroomsIM = shrooms.getItemMeta();
    He gets the ItemMeta from the new items, which aren't the ones he's holding.
    They don't have a lore either, so I'm surprised he ain't getting a NPE.
     
  13. same here, that is a huge issue which he needs to fix beforehand, does the user know Java at all? This kind of looks like code given from a youtube vid imo, nested if statements, basic logic, idk just my opinion.

    First, before doing any of this, learn the ItemMeta interface https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/meta/ItemMeta.html