私はSpigot(Minecraft)でプラグインを実行しています。メッセージ/言語や特定のもののステータスも格納するためにenumを使用しています。 ステータスenumはメッセージenumに依存するという問題があります。そして、メッセージ列挙はファイルmessages.ymlに依存します。 ファイルを再読み込みする方法はわかっていますが、実行するとmessages.ymlファイルの翻訳を変更すると更新されますが、ステータスenumに格納されているメッセージは更新されません。enumインスタンスを「リロードする」
したがって、私はそれが可能だ場合、プラグインがリロードされたときにそれがないようにそれらが値更新列挙型のインスタンスを削除し、に再びを、それを生成を知りたいでしょう。
public enum Message {
WAITING("Status.Waiting");
private String path;
Message(String path) {
this.path = path;
}
public String getMessage() {
return file.getString(path);
}
}
public enum Status {
WAITING(Message.WAITING.getMessage());
private String name;
Status(String name) {
this.name = name;
}
public getName() {
return name;
}
}
私はname.getMessageを行うだろうStatus.WAITING.getNameを()()WAITING(Message.WAITING)を入れて行うことができます答えないでください;.このコードを例として書きましたが、関数ではgetName()関数を使用せず、enumの値だけを使用して、メッセージのenumに名前を書きました。
誰かがこれを解決する場合は、事前に感謝します。 :)
なぜ実際に列挙型を使用する必要がありますか?たとえば、 – Kerooker
のように、すべてのメッセージにゲッターを含むクラスを使用してマップ内に格納して保存することができます。「enums」はメッセージを格納するための素晴らしいアイデアのように聞こえるかもしれませんが、実際はそうではありません。列挙型はリロードされるように設計されておらず、定数であるように設計されているため、一緒に組み込んだハッキングはその価値がありません。私が推奨するのは、ファイルから直接メッセージを取得することです。 –