Solved command not working!

Discussion in 'Plugin Development' started by vhbob, Apr 11, 2015.

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

    vhbob

    the title explains it, the command isnt working, the command registers but does nothing heres my command:
    Code:
                    if(cmd.getName().equalsIgnoreCase("ClassSelectSpearman")){
                        Player p1 = (Player) sender;
                        p1.getInventory().clear();
                        if(p1.hasPermission("class.spearman")){
                        p1.sendMessage(ChatColor.GRAY + "Spearman Class Selected!");
                        PlayerInventory i = p1.getInventory();
                        ItemStack Spear = new ItemStack(Material.STONE_SWORD);
                        ItemMeta stackMeta = Spear.getItemMeta();
                        Spear.setItemMeta(stackMeta);
                        Spear.addUnsafeEnchantment(Enchantment.KNOCKBACK, 2);
                        Spear.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 4);
                        ItemMeta itemMeta = Spear.getItemMeta();
                        itemMeta.setDisplayName(ChatColor.GREEN + "" + ChatColor.BOLD + "Spear");
                        Spear.setItemMeta(itemMeta);
                        i.addItem(Spear);
                        }else{
                            p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD + "NO PERMS!");
                        }
    Thanks <3
     
  2. Offline

    VortexGmer

    add an extra } at the end, Also post any errors in the console plz. Do you have a plugin.yml? If so show it.
     
  3. @vhbob Also indent code. It's a lot easier to look at when formatted properly. I think in Eclipse it's CRTL + Shift + F.

    Once again...
    Code:
    // CHECK BEFORE CASTING!!!!!!!!!!
    if (sender instanceof Player) {
    Player player = (Player) sender;
    } else {
    sender.sendMessage("You're not a player!");
    }
    You can't get Console's inventory....
     
  4. Offline

    vhbob

    @CodePlaysMinecraft @VortexGmer ok i did those steps, heres the plugin.yml
    Code:
    main: me.vhbob.classes.Classes
    name: Block Classes
    description: Allows for classes in minigames!
    author: Vhbob
    version: 1.0
    commands:
       ClassList:
         Description: Lists all classes
       ClassSelectWizard:
         Description: Chooses wizard class
       ClassSelectAssasin:
         Description: Chooses assasin class
       ClassSelectSpearman:
         Description: Chooses spearman class 
    permissions:
      class.select.*:
        description: Gives access to all classes
        children:
          class.wizard: true
          class.assasin: true
          class.spearman: true
      class.assasin:
        description: Allows assasin
      class.wizard:
        description: Allows wizard
      class.spearman:
        description: Allows spearman
    
     
  5. Offline

    GODofCRAFTERS

    You're setting two different ItemMeta's to the same item. Only the last one will be retained. Make sure you want that. And use Eclipse. It should automatically format code for you. Much easier to read and find errors.
     
  6. @vhbob You can only assign permissions to a command....
    Code:
    commands:
      test:
        description: Test command.
        usage: /<command>
        permission: permission.name
     
  7. Offline

    vhbob

    @CodePlaysMinecraft didnt fix it, the thing is that the command isnt working, its registered and all that just fine
     
  8. Offline

    GODofCRAFTERS

    You need to specify usage of the cammand.
    Code:
    usage: /<command>
     
  9. Offline

    vhbob

  10. @vhbob Show the full code, please.
     
  11. @vhbob Man you love to post issues :p

    Please show us any errors and debugs you have gotten.
     
  12. Offline

    vhbob

    @CodePlaysMinecraft @bwfcwalshy Heres the full code:
    Code:
    package me.vhbob.classes;
    
    import java.util.ArrayList;
    import java.util.UUID;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Effect;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Fireball;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.util.Vector;
    
    public class Classes extends JavaPlugin implements Listener {
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            String[] joinMessage = (ChatColor.BOLD + "Welcome!").split("\n");
            for (String s : joinMessage) {
                e.getPlayer().sendMessage(s);
            }
        }
    
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
    
        }
    
        private ArrayList<UUID> Fireball = new ArrayList<UUID>();
    
        public ItemStack getFireball() {
            ItemStack Fireball = new ItemStack(Material.REDSTONE_TORCH_ON);
            ItemMeta stackMeta = Fireball.getItemMeta();
            Fireball.setItemMeta(stackMeta);
            ItemMeta itemMeta = Fireball.getItemMeta();
            itemMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD
                    + "Fire wand");
            Fireball.setItemMeta(itemMeta);
            return Fireball;
    
        }
    
        @EventHandler(priority = EventPriority.HIGH)
        public void onPlayerUse(PlayerInteractEvent event) {
            Player p = event.getPlayer();
            ItemStack itemInHand = p.getItemInHand();
            if (itemInHand.getType() == Material.REDSTONE_TORCH_ON
                    && itemInHand.hasItemMeta()
                    && itemInHand
                            .getItemMeta()
                            .getDisplayName()
                            .equals(ChatColor.RED + "" + ChatColor.BOLD
                                    + "Fire wand")) {
                Fireball fire = p.getWorld().spawn(
                        event.getPlayer().getLocation()
                                .add(new Vector(0.0D, 1.0D, 0.0D)), Fireball.class);
                fire.setFireTicks(0);
                fire.setShooter(p);
            }
        }
    
        public ItemStack getEscape() {
            ItemStack Escape = new ItemStack(Material.MELON_SEEDS);
            ItemMeta stackMeta = Escape.getItemMeta();
            Escape.setItemMeta(stackMeta);
            ItemMeta itemMeta = Escape.getItemMeta();
            itemMeta.setDisplayName(ChatColor.DARK_GRAY + "" + ChatColor.BOLD
                    + "Smoke poppers");
            Escape.setItemMeta(itemMeta);
            return Escape;
        }
    
        @EventHandler(priority = EventPriority.HIGH)
        public void onPlayerUse1(PlayerInteractEvent event) {
            Player p = event.getPlayer();
            ItemStack itemInHand = p.getItemInHand();
            if (itemInHand.getType() == Material.MELON_SEEDS
                    && itemInHand.hasItemMeta()
                    && itemInHand
                            .getItemMeta()
                            .getDisplayName()
                            .equals(ChatColor.DARK_GRAY + "" + ChatColor.BOLD
                                    + "Smoke poppers")) {
                World world = p.getWorld();
                world.playEffect(p.getLocation(), Effect.SMOKE, 0);
            }
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String label,
                String[] args) {
            if (cmd.getName().equalsIgnoreCase("ClassList")) {
                Player p = (Player) sender;
                p.sendMessage("Class List: Wizard, Assasin");
            }
            if (cmd.getName().equalsIgnoreCase("ClassSelectWizard")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.wizard")) {
                    if (sender instanceof Player) {
                        p.sendMessage(ChatColor.GRAY + "Wizard class selected!");
                        ItemStack Fireball = new ItemStack(
                                Material.REDSTONE_TORCH_ON);
                        ItemMeta stackMeta = Fireball.getItemMeta();
                        Fireball.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
                        Fireball.setItemMeta(stackMeta);
                        ItemMeta itemMeta = Fireball.getItemMeta();
                        itemMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD
                                + "Fire wand");
                        Fireball.setItemMeta(itemMeta);
                        ItemStack WizardHat = new ItemStack(Material.LEATHER_HELMET);
                        ItemMeta stackMeta1 = WizardHat.getItemMeta();
                        WizardHat.setItemMeta(stackMeta1);
                        ItemMeta itemMeta1 = WizardHat.getItemMeta();
                        itemMeta1.setDisplayName(ChatColor.DARK_PURPLE + ""
                                + ChatColor.BOLD + "Wizard hat");
                        WizardHat.setItemMeta(itemMeta1);
                        ItemStack WizardStaff = new ItemStack(Material.STICK);
                        ItemMeta stackMeta11 = WizardStaff.getItemMeta();
                        WizardStaff.setItemMeta(stackMeta11);
                        WizardStaff.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2);
                        WizardStaff.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
                        ItemMeta itemMeta11 = WizardStaff.getItemMeta();
                        itemMeta11.setDisplayName(ChatColor.DARK_PURPLE + ""
                                + ChatColor.BOLD + "Wizard Staff");
                        WizardStaff.setItemMeta(itemMeta11);
                        PlayerInventory inventory = p.getInventory();
                        inventory.addItem(WizardStaff);
                        inventory.addItem(Fireball);
                        inventory.addItem(WizardHat);
                    }
                } else {
                    p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                            + "NO PERMS!");
                }
            }
    
            if (cmd.getName().equalsIgnoreCase("ClassSelectAssasin")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.assasin")) {
                    if (sender instanceof Player) {
                        p.sendMessage(ChatColor.GRAY + "Assasin Class Seleclted!");
                        PlayerInventory inventory = p.getInventory();
                        ItemStack Coal = new ItemStack(Material.STONE_SWORD);
                        ItemMeta stackMeta = Coal.getItemMeta();
                        Coal.setItemMeta(stackMeta);
                        Coal.addUnsafeEnchantment(Enchantment.KNOCKBACK, 2);
                        ItemMeta itemMeta = Coal.getItemMeta();
                        itemMeta.setDisplayName(ChatColor.DARK_AQUA + ""
                                + ChatColor.BOLD + "Assasins Dagger");
                        Coal.setItemMeta(itemMeta);
                        inventory.addItem(Coal);
                        ItemStack Escape = new ItemStack(Material.MELON_SEEDS);
                        ItemMeta stackMeta1 = Escape.getItemMeta();
                        Escape.setItemMeta(stackMeta1);
                        ItemMeta itemMeta1 = Escape.getItemMeta();
                        itemMeta1.setDisplayName(ChatColor.DARK_GRAY + ""
                                + ChatColor.BOLD + "Smoke poppers");
                        Escape.setItemMeta(itemMeta1);
                        inventory.addItem(Escape);
                    }
                } else {
                    p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                            + "NO PERMS!");
    
                }
                if (cmd.getName().equalsIgnoreCase("ClassSelectSpearman")) {
                    Player p1 = (Player) sender;
                    p1.getInventory().clear();
                    if (p1.hasPermission("class.spearman")) {
                        p1.sendMessage(ChatColor.GRAY + "Spearman Class Selected!");
                        PlayerInventory i = p1.getInventory();
                        ItemStack Spear = new ItemStack(Material.STONE_SWORD);
                        ItemMeta stackMeta = Spear.getItemMeta();
                        Spear.setItemMeta(stackMeta);
                        Spear.addUnsafeEnchantment(Enchantment.KNOCKBACK, 2);
                        Spear.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 4);
                        ItemMeta itemMeta = Spear.getItemMeta();
                        itemMeta.setDisplayName(ChatColor.GREEN + ""
                                + ChatColor.BOLD + "Spear");
                        Spear.setItemMeta(itemMeta);
                        i.addItem(Spear);
                    } else {
                        p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                                + "NO PERMS!");
                    }   
                }
            }
    
            return false;
        }
    }
    
    there are no bugs in the consol and no errors in the code
     
  13. Offline

    TheDiamond06

    @vhbob I'm pretty sure it looks for description: in plugin yml not capitalized Description:
     
  14. Offline

    stormneo7

    This...
    Code:
    if (cmd.getName().equalsIgnoreCase("ClassSelectSpearman")) {
    is inside...
    Code:
    if (cmd.getName().equalsIgnoreCase("ClassSelectAssasin")) {
    Code:
    if (cmd.getName().equalsIgnoreCase("ClassSelectAssasin")) {
        if (cmd.getName().equalsIgnoreCase("ClassSelectSpearman")) {
        }
    }
    Two birds with one stone.

    Also, plugin.yml has nothing to do with it. The one I tested your code with was as simple as this.
    Code:
    name: TestProject
    version: 1.0
    main: com.stormneo7.Spigot.Main
    commands:
      classlist:
      classselectwizard:
      classselectassasin:
      clssselectspearman:
     
    vhbob likes this.
  15. Offline

    vhbob

    @stormneo7 Thanks that fixed it!!! but also my itemStack name isnt regestering:
    Code:
    ItemStack SArmour = new ItemStack(Material.LEATHER_CHESTPLATE);
                    ItemMeta itemMeta1 = SArmour.getItemMeta();
                    itemMeta1.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "Spearman's Armour");
                    ItemMeta stackMeta1 = SArmour.getItemMeta();
                    SArmour.setItemMeta(stackMeta1);
                    SArmour.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
     
  16. Offline

    stormneo7

    You only need one ItemMeta to do everything.
    Code:
    ItemStack hi = new ItemStack (Material.WOOD);
    ItemMeta hiM = hi.getItemMeta();
    hiM.setDisplayName("Potato");
    hiM.setLore(Arrays.asList("Hi", "Potatoz"));
    hi.setItemMeta(hiM);
     
  17. Offline

    vhbob

    @stormneo7 thanks that fixed my issues, but theres one more now :'( heres my code:
    Code:
    package me.vhbob.MyMobs;
    
    import java.util.ArrayList;
    import java.util.UUID;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Effect;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Fireball;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.util.Vector;
    
    public class MobsMain extends JavaPlugin implements Listener {
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            String[] joinMessage = (ChatColor.BOLD + "Welcome!").split("\n");
            for (String s : joinMessage) {
                e.getPlayer().sendMessage(s);
            }
        }
    
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
    
        }
    
        private ArrayList<UUID> Fireball = new ArrayList<UUID>();
    
        public ItemStack getFireball() {
            ItemStack Fireball = new ItemStack(Material.REDSTONE_TORCH_ON);
            ItemMeta stackMeta = Fireball.getItemMeta();
            Fireball.setItemMeta(stackMeta);
            ItemMeta itemMeta = Fireball.getItemMeta();
            itemMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD
                    + "Fire wand");
            Fireball.setItemMeta(itemMeta);
            return Fireball;
    
        }
    
        @EventHandler(priority = EventPriority.HIGH)
        public void onPlayerUse(PlayerInteractEvent event) {
            Player p = event.getPlayer();
            ItemStack itemInHand = p.getItemInHand();
            if (itemInHand.getType() == Material.REDSTONE_TORCH_ON
                    && itemInHand.hasItemMeta()
                    && itemInHand
                            .getItemMeta()
                            .getDisplayName()
                            .equals(ChatColor.RED + "" + ChatColor.BOLD
                                    + "Fire wand")) {
                Fireball fire = p.getWorld().spawn(
                        event.getPlayer().getLocation()
                                .add(new Vector(0.0D, 1.0D, 0.0D)), Fireball.class);
                fire.setFireTicks(0);
                fire.setShooter(p);
            }
        }
    
        public ItemStack getEscape() {
            ItemStack Escape = new ItemStack(Material.MELON_SEEDS);
            ItemMeta stackMeta = Escape.getItemMeta();
            Escape.setItemMeta(stackMeta);
            ItemMeta itemMeta = Escape.getItemMeta();
            itemMeta.setDisplayName(ChatColor.DARK_GRAY + "" + ChatColor.BOLD
                    + "Smoke poppers");
            Escape.setItemMeta(itemMeta);
            return Escape;
        }
    
        @EventHandler(priority = EventPriority.HIGH)
        public void onPlayerUse1(PlayerInteractEvent event) {
            Player p = event.getPlayer();
            ItemStack itemInHand = p.getItemInHand();
            if (itemInHand.getType() == Material.MELON_SEEDS
                    && itemInHand.hasItemMeta()
                    && itemInHand
                            .getItemMeta()
                            .getDisplayName()
                            .equals(ChatColor.DARK_GRAY + "" + ChatColor.BOLD
                                    + "Smoke poppers")) {
                World world = p.getWorld();
                world.playEffect(p.getLocation(), Effect.SMOKE, 0);
            }
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String label,
                String[] args) {
            if (cmd.getName().equalsIgnoreCase("ClassList")) {
                Player p = (Player) sender;
                p.sendMessage("Class List: Wizard, Assasin");
            }
            if (cmd.getName().equalsIgnoreCase("ClassSelectWizard")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.wizard")) {
                        p.sendMessage(ChatColor.GRAY + "Wizard class selected!");
                        ItemStack Fireball = new ItemStack(
                                Material.REDSTONE_TORCH_ON);
                        ItemMeta stackMeta = Fireball.getItemMeta();
                        Fireball.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
                        Fireball.setItemMeta(stackMeta);
                        ItemMeta itemMeta = Fireball.getItemMeta();
                        itemMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD
                                + "Fire wand");
                        Fireball.setItemMeta(itemMeta);
                        ItemStack WizardHat = new ItemStack(Material.LEATHER_HELMET);
                        ItemMeta stackMeta1 = WizardHat.getItemMeta();
                        WizardHat.setItemMeta(stackMeta1);
                        ItemMeta itemMeta1 = WizardHat.getItemMeta();
                        itemMeta1.setDisplayName(ChatColor.DARK_PURPLE + ""
                                + ChatColor.BOLD + "Wizard hat");
                        WizardHat.setItemMeta(itemMeta1);
                        ItemStack WizardStaff = new ItemStack(Material.STICK);
                        ItemMeta stackMeta11 = WizardStaff.getItemMeta();
                        WizardStaff.setItemMeta(stackMeta11);
                        WizardStaff.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2);
                        WizardStaff.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
                        ItemMeta itemMeta11 = WizardStaff.getItemMeta();
                        itemMeta11.setDisplayName(ChatColor.DARK_PURPLE + ""
                                + ChatColor.BOLD + "Wizard Staff");
                        WizardStaff.setItemMeta(itemMeta11);
                        PlayerInventory inventory = p.getInventory();
                        inventory.addItem(WizardStaff);
                        inventory.addItem(Fireball);
                        inventory.addItem(WizardHat);
                } else {
                    p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                            + "NO PERMS!");
                }
            }
    
            if (cmd.getName().equalsIgnoreCase("ClassSelectAssasin")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.assasin")) {
                        p.sendMessage(ChatColor.GRAY + "Assasin Class Seleclted!");
                        PlayerInventory inventory = p.getInventory();
                        ItemStack Coal = new ItemStack(Material.STONE_SWORD);
                        ItemMeta stackMeta = Coal.getItemMeta();
                        Coal.setItemMeta(stackMeta);
                        Coal.addUnsafeEnchantment(Enchantment.KNOCKBACK, 2);
                        ItemMeta itemMeta = Coal.getItemMeta();
                        itemMeta.setDisplayName(ChatColor.DARK_AQUA + ""
                                + ChatColor.BOLD + "Assasins Dagger");
                        Coal.setItemMeta(itemMeta);
                        inventory.addItem(Coal);
                        ItemStack Escape = new ItemStack(Material.MELON_SEEDS);
                        ItemMeta stackMeta1 = Escape.getItemMeta();
                        Escape.setItemMeta(stackMeta1);
                        ItemMeta itemMeta1 = Escape.getItemMeta();
                        itemMeta1.setDisplayName(ChatColor.DARK_GRAY + ""
                                + ChatColor.BOLD + "Smoke poppers");
                        Escape.setItemMeta(itemMeta1);
                        inventory.addItem(Escape);
                   
                } else {
                    p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                            + "NO PERMS!");
    
                }
    
            }
            if (cmd.getName().equalsIgnoreCase("ClassSelectSpearman")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.spearman")) {
                    p.sendMessage(ChatColor.GRAY + "Spearman Class Selected!");
                    PlayerInventory i = p.getInventory();
                    ItemStack Spear = new ItemStack(Material.STICK);
                    ItemMeta hiM = Spear.getItemMeta();
                    hiM.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "Spear");
                    Spear.setItemMeta(hiM);
                    Spear.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 3);
                    i.addItem(Spear);
                    ItemStack SArmour = new ItemStack(Material.LEATHER_CHESTPLATE);
                    ItemMeta hiM1 = SArmour.getItemMeta();
                    hiM1.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "Armour");
                    SArmour.setItemMeta(hiM1);
                    SArmour.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
                    i.addItem(SArmour);
                }
            } else {
                Player p = (Player) sender;
                p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                        + "NO PERMS!");
            }
            return true;
        }
    
    }
    whenever i do /classSelectAssasin it gives me the items AND says " NO PERMS ":mad:
     
  18. Online

    timtower Administrator Administrator Moderator

    @vhbob Try to add a return
     
  19. Offline

    Protophite

  20. Offline

    vhbob

    @timtower isnt there a return statement at the bottom???
     
  21. Online

    timtower Administrator Administrator Moderator

    @vhbob But why not return after you performed the actions that you need to take?
     
    vhbob likes this.
  22. Offline

    vhbob

  23. Online

    timtower Administrator Administrator Moderator

    @vhbob You can add another return after your no perm message and giving the items.
     
    vhbob likes this.
  24. Offline

    vhbob

    @timtower heres my code :
    Code:
    package me.vhbob.MyMobs;
    
    import java.util.ArrayList;
    import java.util.UUID;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Effect;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.entity.Fireball;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.PlayerInventory;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.util.Vector;
    
    public class MobsMain extends JavaPlugin implements Listener {
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            String[] joinMessage = (ChatColor.BOLD + "Welcome!").split("\n");
            for (String s : joinMessage) {
                e.getPlayer().sendMessage(s);
            }
        }
    
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
    
        }
    
        private ArrayList<UUID> Fireball = new ArrayList<UUID>();
    
        public ItemStack getFireball() {
            ItemStack Fireball = new ItemStack(Material.REDSTONE_TORCH_ON);
            ItemMeta stackMeta = Fireball.getItemMeta();
            Fireball.setItemMeta(stackMeta);
            ItemMeta itemMeta = Fireball.getItemMeta();
            itemMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD
                    + "Fire wand");
            Fireball.setItemMeta(itemMeta);
            return Fireball;
    
        }
    
        @EventHandler(priority = EventPriority.HIGH)
        public void onPlayerUse(PlayerInteractEvent event) {
            Player p = event.getPlayer();
            ItemStack itemInHand = p.getItemInHand();
            if (itemInHand.getType() == Material.REDSTONE_TORCH_ON
                    && itemInHand.hasItemMeta()
                    && itemInHand
                            .getItemMeta()
                            .getDisplayName()
                            .equals(ChatColor.RED + "" + ChatColor.BOLD
                                    + "Fire wand")) {
                Fireball fire = p.getWorld().spawn(
                        event.getPlayer().getLocation()
                                .add(new Vector(0.0D, 1.0D, 0.0D)), Fireball.class);
                fire.setFireTicks(0);
                fire.setShooter(p);
            }
        }
    
        public ItemStack getEscape() {
            ItemStack Escape = new ItemStack(Material.MELON_SEEDS);
            ItemMeta stackMeta = Escape.getItemMeta();
            Escape.setItemMeta(stackMeta);
            ItemMeta itemMeta = Escape.getItemMeta();
            itemMeta.setDisplayName(ChatColor.DARK_GRAY + "" + ChatColor.BOLD
                    + "Smoke poppers");
            Escape.setItemMeta(itemMeta);
            return Escape;
        }
    
        @EventHandler(priority = EventPriority.HIGH)
        public void onPlayerUse1(PlayerInteractEvent event) {
            Player p = event.getPlayer();
            ItemStack itemInHand = p.getItemInHand();
            if (itemInHand.getType() == Material.MELON_SEEDS
                    && itemInHand.hasItemMeta()
                    && itemInHand
                            .getItemMeta()
                            .getDisplayName()
                            .equals(ChatColor.DARK_GRAY + "" + ChatColor.BOLD
                                    + "Smoke poppers")) {
                World world = p.getWorld();
                world.playEffect(p.getLocation(), Effect.SMOKE, 0);
            }
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String label,
                String[] args) {
            if (cmd.getName().equalsIgnoreCase("ClassList")) {
                Player p = (Player) sender;
                p.sendMessage("Class List: Wizard, Assasin");
            }
            if (cmd.getName().equalsIgnoreCase("ClassSelectWizard")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.wizard")) {
                    p.sendMessage(ChatColor.GRAY + "Wizard class selected!");
                    ItemStack Fireball = new ItemStack(Material.REDSTONE_TORCH_ON);
                    ItemMeta stackMeta = Fireball.getItemMeta();
                    Fireball.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
                    Fireball.setItemMeta(stackMeta);
                    ItemMeta itemMeta = Fireball.getItemMeta();
                    itemMeta.setDisplayName(ChatColor.RED + "" + ChatColor.BOLD
                            + "Fire wand");
                    Fireball.setItemMeta(itemMeta);
                    ItemStack WizardHat = new ItemStack(Material.LEATHER_HELMET);
                    ItemMeta stackMeta1 = WizardHat.getItemMeta();
                    WizardHat.setItemMeta(stackMeta1);
                    ItemMeta itemMeta1 = WizardHat.getItemMeta();
                    itemMeta1.setDisplayName(ChatColor.DARK_PURPLE + ""
                            + ChatColor.BOLD + "Wizard hat");
                    WizardHat.setItemMeta(itemMeta1);
                    ItemStack WizardStaff = new ItemStack(Material.STICK);
                    ItemMeta stackMeta11 = WizardStaff.getItemMeta();
                    WizardStaff.setItemMeta(stackMeta11);
                    WizardStaff.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 2);
                    WizardStaff.addUnsafeEnchantment(Enchantment.KNOCKBACK, 1);
                    ItemMeta itemMeta11 = WizardStaff.getItemMeta();
                    itemMeta11.setDisplayName(ChatColor.DARK_PURPLE + ""
                            + ChatColor.BOLD + "Wizard Staff");
                    WizardStaff.setItemMeta(itemMeta11);
                    PlayerInventory inventory = p.getInventory();
                    inventory.addItem(WizardStaff);
                    inventory.addItem(Fireball);
                    inventory.addItem(WizardHat);
                    return false;
                } else {
                    p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                            + "NO PERMS!");
                }
            }
    
            if (cmd.getName().equalsIgnoreCase("ClassSelectAssasin")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.assasin")) {
                    p.sendMessage(ChatColor.GRAY + "Assasin Class Seleclted!");
                    PlayerInventory inventory = p.getInventory();
                    ItemStack Coal = new ItemStack(Material.STONE_SWORD);
                    ItemMeta stackMeta = Coal.getItemMeta();
                    Coal.setItemMeta(stackMeta);
                    Coal.addUnsafeEnchantment(Enchantment.KNOCKBACK, 2);
                    ItemMeta itemMeta = Coal.getItemMeta();
                    itemMeta.setDisplayName(ChatColor.DARK_AQUA + ""
                            + ChatColor.BOLD + "Assasins Dagger");
                    Coal.setItemMeta(itemMeta);
                    inventory.addItem(Coal);
                    ItemStack Escape = new ItemStack(Material.MELON_SEEDS);
                    ItemMeta stackMeta1 = Escape.getItemMeta();
                    Escape.setItemMeta(stackMeta1);
                    ItemMeta itemMeta1 = Escape.getItemMeta();
                    itemMeta1.setDisplayName(ChatColor.DARK_GRAY + ""
                            + ChatColor.BOLD + "Smoke poppers");
                    Escape.setItemMeta(itemMeta1);
                    inventory.addItem(Escape);
                    return false;
                } else {
                    p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                            + "NO PERMS!");
    
                }
    
            }
            if (cmd.getName().equalsIgnoreCase("ClassSelectSpearman")) {
                Player p = (Player) sender;
                p.getInventory().clear();
                if (p.hasPermission("class.spearman")) {
                    p.sendMessage(ChatColor.GRAY + "Spearman Class Selected!");
                    PlayerInventory i = p.getInventory();
                    ItemStack Spear = new ItemStack(Material.STICK);
                    ItemMeta hiM = Spear.getItemMeta();
                    hiM.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "Spear");
                    Spear.setItemMeta(hiM);
                    Spear.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 3);
                    i.addItem(Spear);
                    ItemStack SArmour = new ItemStack(Material.LEATHER_CHESTPLATE);
                    ItemMeta hiM1 = SArmour.getItemMeta();
                    hiM1.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD
                            + "Armour");
                    SArmour.setItemMeta(hiM1);
                    SArmour.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2);
                    i.addItem(SArmour);
                    return false;
                }
            } else {
                Player p = (Player) sender;
                p.sendMessage(ChatColor.DARK_RED + "" + ChatColor.BOLD
                        + "NO PERMS!");
            }
            return true;
        }
    
    }
    it works now, BUT it says no perms twice when i do /classselectwizard or assasin and none if i do /classselectspearman
     
  25. Online

    timtower Administrator Administrator Moderator

    @vhbob 1. Return true instead
    2. Also add the return after the no perms. And your else is based on the command used, not the permission
     
  26. Offline

    vhbob

  27. @vhbob Please set this thread to Solved so we know that your problem is solved. Go to Thread Tools (at the top) > Edit Title > Prefix > Solved. See this for more info.
     
Thread Status:
Not open for further replies.

Share This Page