Solved Error when try to enter only the command Plzz Help

Discussion in 'Plugin Development' started by Nobleteam13245, Jan 9, 2013.

Thread Status:
Not open for further replies.
  1. I made a plugin with commands in it that are used to change the weather.
    The commands that I made are :
    /wc rain
    /wc storm
    /wc sun


    Every command works correct but when I enter only /wc then it gives an error.
    maybe someone knows a fix for this this is my class file :https://dl.dropbox.com/u/79630561/WeatherChange.class
     
  2. Offline

    fireblast709

    check if the args.length > 0
     
  3. Yeah i fixed one part of it now if I enter the command and i enter a agrument that is incorrect i get a nice message. but I still get that error when I enter only /WC
     
  4. Offline

    gomeow

    Could you post you code here?
     
  5. Sure here it is this is the complete class :
    Code:
    package com.webs.mcsoftworks.plugins.weatherchange;
     
    import java.util.logging.Logger;
     
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class WeatherChange extends JavaPlugin implements CommandExecutor{
       
        @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (!(sender instanceof Player)){
                sender.sendMessage("This command can only be run by a player.");
                return true;
            }else {
                Player player = (Player) sender;
                if (command.getName().equalsIgnoreCase("wc")){
                    if (args[0].equalsIgnoreCase("sun")){
                        this.getServer().getWorlds().get(0).setStorm(false);
                        this.getServer().getWorlds().get(0).setThundering(false);
                        Bukkit.broadcastMessage(ChatColor.GOLD + "[" + getName()+ "]" + ChatColor.WHITE + " the weather is set to sunny.");
                        return true;
                    }else if (args[0].equalsIgnoreCase("rain")){
                        this.getServer().getWorlds().get(0).setStorm(true);
                        this.getServer().getWorlds().get(0).setThundering(false);
                        Bukkit.broadcastMessage(ChatColor.GOLD + "[" + getName()+ "]" + ChatColor.WHITE + " the weather is set to rain.");
                        return true;
                    }else if (args[0].equalsIgnoreCase("storm")){
                        this.getServer().getWorlds().get(0).setStorm(true);
                        this.getServer().getWorlds().get(0).setThundering(true);
                        Bukkit.broadcastMessage(ChatColor.GOLD + "[" + getName()+ "]" + ChatColor.WHITE + " the weather is set to storm.");
                        return true;
                    }else {
                        player.sendMessage(ChatColor.GOLD + "[" + getName() + "]" + ChatColor.GREEN + " Usage is /wc [sun, rain, storm]");
                        return true;
                    }
                }
                if (command.getName().equalsIgnoreCase("weatherchange")){
                    sender.sendMessage(ChatColor.GOLD + "----------WeatherChange----------");
                    sender.sendMessage(ChatColor.GOLD + "        Use /rain to make it rain.  ");
                    sender.sendMessage(ChatColor.GOLD + "      Use /sun to let the sun shine. ");
                    sender.sendMessage(ChatColor.GOLD + "      Use /storm to let it storm.  ");
                    sender.sendMessage(ChatColor.GOLD + "        Plugin by MC-Softworks");
                    sender.sendMessage(ChatColor.GOLD + "---------------------------------");
                    return true;
                }else {
                   
                return false;
            }
           
            }
        }
     
        public final Logger logger = Logger.getLogger("Minecraft");
       
        public void onEnable(){
            PluginDescriptionFile pdf = getDescription();
            logger.info("[" + pdf.getName() + "]" + " has been enabled!");
        }
       
        public void onDisable(){
            PluginDescriptionFile pdf = getDescription();
            logger.info("[" + pdf.getName() + "]" + " has been disabled!");
        }
    }
    
     
  6. Offline

    Drkmaster83

    Code:
    @Override
        public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
            if (!(sender instanceof Player)){
                sender.sendMessage("This command can only be run by a player.");
                return true;
            }else {
                Player player = (Player) sender;
                if (command.getName().equalsIgnoreCase("wc")){
                    if(args.length == 0)
                    {
                        player.sendMessage(ChatColor.RED + "Valid Arguments: Sun, Rain, Storm.");
                    } 
                    else if (args.length == 1)
                    {
                        if (args[0].equalsIgnoreCase("sun")){
                            this.getServer().getWorlds().get(0).setStorm(false);
                            this.getServer().getWorlds().get(0).setThundering(false);
                            Bukkit.broadcastMessage(ChatColor.GOLD + "[" + getName()+ "]" + ChatColor.WHITE + " the weather is set to sunny.");
                            return true;
                        }else if (args[0].equalsIgnoreCase("rain")){
                            this.getServer().getWorlds().get(0).setStorm(true);
                            this.getServer().getWorlds().get(0).setThundering(false);
                            Bukkit.broadcastMessage(ChatColor.GOLD + "[" + getName()+ "]" + ChatColor.WHITE + " the weather is set to rain.");
                            return true;
                        }else if (args[0].equalsIgnoreCase("storm")){
                            this.getServer().getWorlds().get(0).setStorm(true);
                            this.getServer().getWorlds().get(0).setThundering(true);
                            Bukkit.broadcastMessage(ChatColor.GOLD + "[" + getName()+ "]" + ChatColor.WHITE + " the weather is set to storm.");
                            return true;
                        }else {
                            player.sendMessage(ChatColor.GOLD + "[" + getName() + "]" + ChatColor.GREEN + " Usage is /wc [sun, rain, storm]");
                            return true;
                        }
                    }
                    else
                    {
                        player.sendMessage(ChatColor.RED + "Too many arguments.");
                    }
                }
                else if (command.getName().equalsIgnoreCase("weatherchange")){
                    sender.sendMessage(ChatColor.GOLD + "----------WeatherChange----------");
                    sender.sendMessage(ChatColor.GOLD + "        Use /rain to make it rain.  ");
                    sender.sendMessage(ChatColor.GOLD + "      Use /sun to let the sun shine. ");
                    sender.sendMessage(ChatColor.GOLD + "      Use /storm to let it storm.  ");
                    sender.sendMessage(ChatColor.GOLD + "        Plugin by MC-Softworks");
                    sender.sendMessage(ChatColor.GOLD + "---------------------------------");
                    return true;
                }else {
                   
                return false;
            }
    There ya go.
    However, I want to ask why this class is extending JavaPlugin.

    As well as why you have this:
    Code:
    Use /rain to make it rain.  ");
                    sender.sendMessage(ChatColor.GOLD + "      Use /sun to let the sun shine. ");
                    sender.sendMessage(ChatColor.GOLD + "      Use /storm to let it storm.
    When you don't have those commands listed in this class.
     
  7. These are agruments thanks i changed then to
    /wc sun
    /wc storm
    /wc rain
     
  8. Offline

    Drkmaster83

    Works fine?
     
  9. I am still working on it

    Yeah it works fine thanks i also addded permissions to it :D

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 8, 2016
Thread Status:
Not open for further replies.

Share This Page