如何使用 Bukkit API 从 .yaml 文件加载 tree/indexes?

How to load tree/indexes from .yaml file using the Bukkit API?

如何从 Bukkit 中的 YAML 文件加载 tree/indexes?这是我要从中获取所有值的文件:

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

这个 YAML 文件是一个配置,用户可以在其中添加任意数量的组,因此不可能收集 YamlConfiguration.getString("groups.myGroup1.[..])") 之类的东西。

我需要 "groups:" 中的所有内容的列表,所以它应该看起来像 YamlConfiguration.getString("groups.%groupName%.[..])")。 "groups:"后面的东西有没有人知道怎么收集(可以是组名)谢谢帮忙!

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

如果参数为真,则递归检索所有键。如果它是假的,那么它只会得到顶级密钥。因此,在您的示例文件上调用 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");
}