2

実は、私は助けが必要です。私は Java の初心者ですが、Minecraft プラグインのコーディングを開始しました。デフォルトのファイルとして別のパスを持つ .yml ファイルのコンテンツをロードしたいと考えています。私の知る限り、これを使用する必要があります.getString(String)。しかし、別のパスを設定して getString を一度に使用する方法がわかりません。

言語をロードするメソッド

public void loadLanguage() throws IOException {
    String language = this.getConfig().getString("language");
    InputStream lang = this.getClass().getClassLoader().getResourceAsStream("languages/" + language + ".yml");
    YamlConfiguration langfile = YamlConfiguration.loadConfiguration(lang);
    langfile.options().copyDefaults(true);
    langfile.save("plugins/Costumized/languages/" + language + ".yml");
}

主要部分では、コマンドを実行したプレイヤーにメッセージが送信されるように、getString を使用して指定されたメッセージを取得する必要があります。

私の問題が何であるかを理解していただければ幸いです。そして、はい、私の英語はひどいです。そのために泣く。

4

1 に答える 1

0

簡単な構成管理のために、私の SpigotLib プラグインを使用できます。

https://www.spigotmc.org/resources/spigotlib.5925/

それを使用して複数の構成を処理するには、簡単にするために静的フィールドを使用して構成ごとに新しいクラスを作成する必要があります。次のように onEnable の構成を保存してロードできます。

  ConfigFile kf1,kf2;

  public void onEnable()
  {
    SU.saveResources(this, "config.yml", "config2.yml");
    kf1=new ConfigFile(new File(getDataFolder()+File.separator+"config1.yml");
    kf2=new ConfigFile(new File(getDataFolder()+File.separator+"config2.yml");
    kf1.data.deserialize(Config1.class);
    kf2.data.deserialize(Config2.class);
    SU.pm.registerEvents(this, this);
  }

構成の保存も非常に簡単です。

  public void onDisable()
  {
    kf1.save();
    kf2.save();
  }

そのため、get や set などの構成設定を使用する必要がなくなり、SpigotLib によって自動的に処理されるあらゆる種類のデータ構造を持つことができます。したがって、いくつかの文字列を保存する必要があるだけの場合は、hashmap フィールドを構成クラスに追加できます。

于 2015-08-12T11:41:24.333 に答える