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

标签 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%.[..])") 。 有人知道如何收集“groups:”后面的所有内容(可以只是组名)谢谢您的帮助!

最佳答案

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

如果参数为 true,则将递归检索所有键。如果为 false,则只会获取顶级 key 。调用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");
}

关于java - 如何使用 Bukkit API 从 .yaml 文件加载树/索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45383035/

相关文章:

java - 循环使用骰子滚动程序,之前的滚动和双重检查

c# - 如何使用接口(interface)序列化/反序列化列表

java - Bukkit/龙头 : Plugin - Custom GUI Shop error

java - 需要一些 PUB/SUB Jedis 帮助 Bukkit

yaml - 如何在 YAML 配置文件中设置/获取 HashMap?

java - 如何命名存储库和服务接口(interface)?

java - 使用 gm4java 在单个进程中进行多个图像操作

yaml - Log4j2 : How to configure multiple Appender with same type in Yaml configuration

yaml - 如何使用 CloudFormation 脚本从外部文件(例如来自 S3 存储桶)更新 EC2 实例中的文件 application.properties?

java - log4j。唯一的日志文件名