-1

Java プラグインに問題があります。これは私が前に持っていたことはありません。通常はすべてうまくいきました。

コードは次のとおりです。

package me.brian.CubeRanks;

import me.brian.CubeRanks.CubeRanks;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.logging.Logger;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;


public class CubeRanks {

    public class CubeRanks extends JavaPlugin {

        public static CubeRanks plugin;
        public final Logger log = Logger.getLogger("Minecraft");
        public boolean enabled = false;
        public final PlayerListener pl = new PlayerListener(this);
        public final ArrayList<Player> OreHunterUsers = new ArrayList<Player>();
        public String cr = "[CubeRanks] ";


        @Override
        public void onEnable() {
            log.info(cr + "is now enabled.");   
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvents(pl, this);

        }

        @Override
        public void onDisable() {
            log.info(cr + "is now disabled.");
        }

        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(commandLabel.equalsIgnoreCase("CubeRanks")) {
                if(args.length==0) {
                    if(!enabled) {
                        enabled = true;
                        ((Player) sender).sendMessage(ChatColor.GREEN + cr + "is now enabled");
                    }
                    else {
                        enabled = false;
                        ((Player) sender).sendMessage(ChatColor.RED + cr + "is now disbaled");
                    }
                }
            }
            return false;
        }
    }
}

誰かが何が悪いのか見ることができますか?

エラーコード全体:

説明 リソース パス 場所 タイプ ネストされたタイプ CubeRanks は、外側のタイプを非表示にできません CubeRanks.java /CubeRanks/src/me/brian/CubeRanks 16 行目 Java 問題

エラーの写真:これがエラーです

4

1 に答える 1

0

同じ名前のクラスを囲むクラスがあります。なぜその外部CubeRanksクラスがあるのか​​ わかりませんが、外部クラスを取り除くか、名前を変更してください。

public class CubeRanks { // remove or rename

    public class CubeRanks extends JavaPlugin { // or rename this
        ...
    }

}

構文的に、外部クラスと同じ名前の内部クラスを使用できない理由は、次のあいまいさを取り除くためです。

public class Ambiguous {
    public class Ambiguous {
        Ambiguous a; // <-- which type is Ambiguous referring to here?
    } 
}

最新のエンクロージング型名が優先される可能性があると主張することもできますが、その場合、外側の型をどのように参照しますか? 理論的には、そのすべてを考慮して言語を設計する方法はありますが、それを許可しない方が簡単です。

于 2013-08-09T19:44:28.223 に答える