0

これが私のコードです。一番下の最後の中括弧にエラーがあります。これは非常に迷惑であり、私はそれを修正しようとしています。ブラケットが多すぎるのですか?私は本当に困惑しています。助けてください。

    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;
    }
4

2 に答える 2

1

ファイルの末尾に 2 つの「}」がありません。

  1. public boolean onCommand()
  2. クラス medicplugin1

truejpw が言及した 3 番目のものは、if 句の最後に戻りたいと思うので、実際には開始ブレースの問題です。

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

次回は IDE コード フォーマッタの使用を検討してください。このような問題が発生する可能性が最も高いからです。

さらに遠く ...

   if (cmd.getName().equalsIgnoreCase("regen")){ ... }

   return true;

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

このコードは間違っているようです..これは、コンパイル時に UnreachableCode エラーで解決されるためです。

于 2013-11-03T20:36:31.350 に答える
0

最後に3 つ抜けています}。適切なインデントがあれば、これは非常に速く明らかになります。

閉じ括弧が欠落しているブロックは次のとおりです。

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

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

public class medicplugin1 extends JavaPlugin

于 2013-11-03T20:36:26.880 に答える