No Idea what is wrong with this? I get no errors?

Discussion in 'Plugin Development' started by KylexDavis, Jan 6, 2013.

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

    KylexDavis

    I have no idea what I have done wrong, but when I run the command /moderator in-game, it just says "Unknown Command" or whatever. Here is the code:

    Code:
    package net.mccinema.kyle.plugins;
     
    import java.util.logging.Logger;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.LeatherArmorMeta;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class ModeratorMCC extends JavaPlugin{
        public final Logger logger = Logger.getLogger("Minecraft");
        public static ModeratorMCC plugin;
       
        @Override
        public void onDisable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " has been disabled.");
        }
       
        @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion() + " has been enabled.");
           
        }
     
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            Player player = (Player) sender;
            if(commandLabel.equalsIgnoreCase("moderator")){
            player.sendMessage(ChatColor.GOLD + " Moderator Uniform Enabled.");
           
            ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
            LeatherArmorMeta meta = (LeatherArmorMeta) helm.getItemMeta();
            meta.setColor(Color.PURPLE);
            helm.setItemMeta(meta);
            player.getInventory().setHelmet(helm);
            ItemStack chestplate = new ItemStack(Material.LEATHER_CHESTPLATE);
            LeatherArmorMeta meta1 = (LeatherArmorMeta) helm.getItemMeta();
            meta1.setColor(Color.PURPLE);
            helm.setItemMeta(meta1);
            player.getInventory().setChestplate(chestplate);
            ItemStack leggings = new ItemStack(Material.LEATHER_LEGGINGS);
            LeatherArmorMeta meta2 = (LeatherArmorMeta) helm.getItemMeta();
            meta2.setColor(Color.PURPLE);
            helm.setItemMeta(meta2);
            player.getInventory().setHelmet(leggings);
            ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
            LeatherArmorMeta meta3 = (LeatherArmorMeta) helm.getItemMeta();
            meta.setColor(Color.PURPLE);
            helm.setItemMeta(meta3);
            player.getInventory().setHelmet(boots);
           
            }
           
            return false;
       
        }
     
     
     
     
     
     
     
    }
    
    Also, my plugin.yml is as follows:

    Code:
    name: MCCModerator
    main: net.mccinema.kyle.plugins.MCCModerator
    version: 1.0
    authors: ["KylexDavis"]
    description: Gives the Moderators their uniform.
    commands:
      moderator:
        description: Gives the Moderator Uniform
        usage: /moderator
    
    I'm honestly not sure what has gone wrong, hope someone can help. As usual, any help is appreciated! I know it's probably really simple, I'm new to this stuff! :3
     
  2. Offline

    caseif

    You aren't returning true inside of the if clause that checks the commandLabel. Add in a line to do that, and you should be good.
    Additionally, if the sender is the console, the plugin will throw an exception. Add in "if (sender instanceof Player){" before your cast. You'll also need to move the cast inside of the commandLabel check.
     
    KylexDavis likes this.
  3. Offline

    KylexDavis

    Sorry, could you show me what you mean? I'm getting quite lost.
     
  4. Offline

    caseif

    Code:
    package net.mccinema.kyle.plugins;
     
    import java.util.logging.Logger;
     
    import org.bukkit.ChatColor;
    import org.bukkit.Color;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.LeatherArmorMeta;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class ModeratorMCC extends JavaPlugin{
        public final Logger logger = Logger.getLogger("Minecraft");
        public static ModeratorMCC plugin;
     
        @Override
        public void onDisable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " has been disabled.");
        }
     
        @Override
        public void onEnable() {
            PluginDescriptionFile pdfFile = this.getDescription();
            this.logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion() + " has been enabled.");
         
        }
     
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(commandLabel.equalsIgnoreCase("moderator")){
                if (sender instanceof Player){
                Player player = (Player)sender;
                player.sendMessage(ChatColor.GOLD + " Moderator Uniform Enabled.");
                ItemStack helm = new ItemStack(Material.LEATHER_HELMET);
                LeatherArmorMeta meta = (LeatherArmorMeta) helm.getItemMeta();
                meta.setColor(Color.PURPLE);
                helm.setItemMeta(meta);
                player.getInventory().setHelmet(helm);
                ItemStack chestplate = new ItemStack(Material.LEATHER_CHESTPLATE);
                LeatherArmorMeta meta1 = (LeatherArmorMeta) helm.getItemMeta();
                meta1.setColor(Color.PURPLE);
                helm.setItemMeta(meta1);
                player.getInventory().setChestplate(chestplate);
                ItemStack leggings = new ItemStack(Material.LEATHER_LEGGINGS);
                LeatherArmorMeta meta2 = (LeatherArmorMeta) helm.getItemMeta();
                meta2.setColor(Color.PURPLE);
                helm.setItemMeta(meta2);
                player.getInventory().setHelmet(leggings);
                ItemStack boots = new ItemStack(Material.LEATHER_BOOTS);
                LeatherArmorMeta meta3 = (LeatherArmorMeta) helm.getItemMeta();
                meta.setColor(Color.PURPLE);
                helm.setItemMeta(meta3);
                player.getInventory().setHelmet(boots);
                }
                else
                    sender.sendMessage(ChatColor.RED + "You must be a player to use this command!");
               return true;
            }
            return false;
        }
     
     
     
     
     
     
     
    }
    
     
    KylexDavis likes this.
  5. Offline

    KylexDavis

    Thanks, trying it out now. Really appreciate it! :)
     
Thread Status:
Not open for further replies.

Share This Page