Java Bukkit插件语法错误:语法错误,插入";}&引用;完成类主体

Java Bukkit插件语法错误:语法错误,插入";}&引用;完成类主体,java,syntax,bukkit,Java,Syntax,Bukkit,这是我的密码。底部的最后一个花括号有错误。这很烦人,我一直在努力解决它。是因为我的牙套太多还是什么?我真的被难住了。请帮忙 enter code here package me.sapita.medic; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org

这是我的密码。底部的最后一个花括号有错误。这很烦人,我一直在努力解决它。是因为我的牙套太多还是什么?我真的被难住了。请帮忙

    enter code here

package me.sapita.medic;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class medicplugin1 extends JavaPlugin {


    public void onEnable() {
        Bukkit.getServer().getLogger().info("Medic enabled!");
    }

    public void onDisable() {
        Bukkit.getServer().getLogger().info("Medic disabled!");
    }

    @SuppressWarnings("deprecation")
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){

    if (!(sender instanceof Player)){
        sender.sendMessage(ChatColor.RED + "The console cannot be regenerated!");
        return true;
    }

    Player player = (Player) sender;


    if (cmd.getName().equalsIgnoreCase("regen")){
        Player target = Bukkit.getServer().getPlayer(args[0]);
        if (target == null){
            player.sendMessage(ChatColor.RED + "Could not find user.");
            return true;
        }

        if (args.length == 0){
            player.setHealth(20);
            player.setFoodLevel(20);
            player.sendMessage(ChatColor.GREEN + "Your health & food have been regenerated!");
        }
        if (target == null){
            player.sendMessage("Please specify a player to regenerate.");
        }

        sender.sendMessage(target.getName() + "has been regenerated!");

        target.setHealth(20);
        target.sendMessage(sender.getName()+ "has regenerated your health & food!");
        return true;

        }

    return true;

    if (cmd.getName().equalsIgnoreCase("resetfood")){

        Player target = Bukkit.getServer().getPlayer(args[0]);
    if (target == null){
        player.setFoodLevel(20);
        player.sendMessage(ChatColor.GREEN + "Your food health has been regenerated!");
        return true;
    }

    if (args.length == 0){
        sender.sendMessage(ChatColor.GREEN + "You have fed yourself!");

        player.setFoodLevel(20);
        return true;
    }


    target.setFoodLevel(20);



    target.sendMessage(sender.getName() + "has regenerated your food!");

    sender.sendMessage(ChatColor.GREEN + target.getName() + "has been food health has been regenerated!");{
        return true;
    }

实际上,您在结尾缺少三(3)
}
。适当的压痕会使这一点非常明显

缺少闭合括号的块包括:

if(cmd.getName().equalsIgnoreCase(“resetfood”)

public boolean onCommand(CommandSender、Command cmd、String commandLabel、String[]args)

公共类medicplugin1扩展了JavaPlugin

文件末尾缺少两个“}”

  • 公共布尔onCommand()
  • medicplugin1类
  • jpw提到的第三个问题实际上是大括号的问题,因为我认为您希望在if子句末尾返回
    true

    sender.sendMessage( ... ); ---> { <---
        return true;
    }
    

    这个代码似乎是错的。。因为这将在编译时解决无法访问的代码错误。

    这是不使用“Java opening{”样式的原因之一-将大括号放在下一行-缩进所有内容,您将看到问题所在。
       if (cmd.getName().equalsIgnoreCase("regen")){ ... }
    
       return true;
    
       if (cmd.getName().equalsIgnoreCase("resetfood")){ ... ]