如何使用Bukkit API从.yaml文件加载树/索引?

时间:2017-07-28 22:03:46

标签: java yaml bukkit

如何从Bukkit中的YAML文件加载树/索引?这是我想从中获取所有值的文件:

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

此YAML文件是一种配置,用户可以根据需要添加任意数量的组,因此无法收集YamlConfiguration.getString("groups.myGroup1.[..])")之类的内容。

我需要在“groups:”中列出所有内容,所以看起来应该是这样的 YamlConfiguration.getString("groups.%groupName%.[..])")。 有人知道如何收集“群组:”之后的所有内容(它可以只是群组名称)感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

一旦您加载了YAML文件并拥有YamlConfiguration的实例,就可以使用getKeys(boolean)获取当前部分中的键列表。

如果参数为true,则将递归检索所有键。如果它是假的,那么它只会获得顶级键。因此,在示例文件上调用yml.getConfigurationSection("groups").getKeys(false)会产生以下结果:

[myGroup1, myGroup2]

在您的情况下,使用它来解析yaml文件将如下所示:

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