2017-07-28 11 views
1

BukkitのYAMLファイルからツリー/インデックスをロードするにはどうすればよいですか?彼らはYamlConfiguration.getString("groups.myGroup1.[..])")のようなものを収集することは不可能であるので、好きなユーザーは、できるだけ多くのグループを追加できBukkit APIを使用して.yamlファイルからツリー/インデックスをロードする方法は?

groups: 
    myGroup1: 
    prefix: [test] 
    permissions: 
     - test 
    myGroup2: 
    prefix: [test2] 
    permissions: 
     - test2 

このYAMLファイルは、コンフィギュレーションである:これは私からすべての値を取得したいファイルです。

"groups:"にすべてのもののリストが必要なので、 YamlConfiguration.getString("groups.%groupName%.[..])")のようになります。 誰かが「グループ:」の後にすべてのものを集める方法を知っていますか(それは単にグループ名になります)助けてくれてありがとう!

+0

あなたはジャクソンがYMLを読み取るために使用することができます。このようになりYAMLファイルを解析することを利用して、あなたの場合は

[myGroup1, myGroup2] 

:だからあなたの例のファイルにyml.getConfigurationSection("groups").getKeys(false)を呼び出すと、次のような結果を生成しますファイル。 Jackson && yml && javaを検索 – Dakoda

+0

ありがとう! 「グループ:」の後にすべてのオブジェクトを読み込む方法を教えてもらえますか? –

+2

[Parse a yaml file](https://stackoverflow.com/questions/25796637/parse-a-yaml-file)の重複している可能性があります – maszter

答えて

2

YAMLファイルをロードして、YamlConfigurationのインスタンスを取得したら、getKeys(boolean)を使用して、現在のセクションのキーのリストを取得できます。

このパラメータがtrueの場合、すべてのキーが再帰的に取得されます。 falseの場合は、最上位のキーのみを取得します。

ConfigurationSection section = yml.getConfigurationSection("groups"); 
for (String group : section.getKeys(false)) { 
    List<String> prefixes = section.getStringList("prefix"); 
    List<String> permissions = section.getStringList("permissions"); 
} 
+0

ありがとう!それが私の質問に対する答えでした! :)) –

+0

@PiotrOsadaあなたが満足している場合は、私の答えを受け入れてください。他のユーザーがこの質問に回答したことを知るようにしてください。 – kmecpp

+0

完了! :)ありがとう –

関連する問題