Ошибка на моей точке с запятой кажется неустранимой

Вот весь мой код:

@Override
public void onEnable()
{
    getLogger().info("Plugin Enabled!");

    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
    {
        if(cmd.getName().equalsIgnoreCase("Plugin"))
        { 
            // If the player typed /plugin then do the following...
            if (sender instanceof Player) 
            {
                Player player = (Player) sender;

                // Gives player item
                return true;
            } 
            else 
            {
                sender.sendMessage("You must be a player!");
                return false;
            }
        }   
    }

    @Override
    public void onDisable() 
    {
        getLogger().info("Plugin Disabled!");
    }
}

Если вы не знали, это плагин для Minecraft Bukkit.

Вот строка ошибки:

getLogger().info("Plugin Enabled!");

Когда я удаляю точку с запятой, сообщение " " является ошибкой, а когда я вставляю "}" или / и "{", это показывает ошибку, помогите!

3 ответа

Решение

У вас есть метод (onCommand) в другом методе (onEnable) - это невозможно.

Я полагаю, вам не хватает закрывающей скобки } до public boolean onCommand,

public void onEnable() {
    getLogger().info("Plugin Enabled!");
} //HERE ADD THE MISSING BRACE

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    if (cmd.getName().equalsIgnoreCase("Plugin")) { // If the player typed /plugin then do the following...
        if (sender instanceof Player) {
            Player player = (Player) sender;

            // Gives player item
            return true;
        } else {
            sender.sendMessage("You must be a player!");
            return false;
        }
    } else {
        return false; //HERE YOU NEED TO RETURN FROM THE ELSE TOO
    }
}

Проблема в том, что у вас есть 3 метода: onEnable(), onCommand() а также onDisable() Однако два последних метода определены в onEnable() что вы не можете сделать. если вы поставите '}' после getLogger()... позвоните, вы закончите onEnable() позвоните туда, тогда вам также нужно удалить трейлинг '}', который вы получили в конце блока, который вы нам показываете.

public void onEnable(){
    getLogger().info("Plugin Enabled!");
}// Add braces

    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
        if(cmd.getName().equalsIgnoreCase("Plugin")){ // If the player typed /plugin then do the following...
            if (sender instanceof Player) {
                   Player player = (Player) sender;

                   // Gives player item
                   return true;
                } else {
                   sender.sendMessage("You must be a player!");
                   return false;
                }
        } 

    }

@Override
public void onDisable() {
    getLogger().info("Plugin Disabled!");
}
// } Delete this braces
Другие вопросы по тегам