如何从config.yml Bukkit获取字符串

时间:2018-07-10 18:54:46

标签: java config minecraft bukkit

我有一个这样的配置文件:

mute:
 MrBahur:
  time: 30
  reason: dsa
 SlayZBro:
  time: 30
  reason: dsa

我想取一个名字“ MrBahur”和“ SlayZBro”,并在广播中每秒打印一次 我的代码是这样,但是为什么不行

public void runnable() {
    new BukkitRunnable() {  
        @Override
        public void run() {
                for(String x : getConfig().getStringList("mute"))
                    Bukkit.broadcastMessage(x);             
        }
    }.runTaskTimerAsynchronously(this, 0, 20);
}

1 个答案:

答案 0 :(得分:2)

通常,StackOverflow上的人员鼓励您解释到目前为止为使代码正常工作而进行的尝试,因此请为将来知道。

无论如何,您遇到的问题是您正试图像访问字符串列表一样访问数据(具体来说,您叫getStringList(String))。 YAML(写入.yml文件的格式)本质上是JSON更具可读性/更简单的版本。您的.yml文件将如下所示:

{
    "mute": {
        "MrBahur": {
            "time": 30,
            "reason": "dsa"
        },
        "SlayZBro": {
            "time": 30,
            "reason": "dsa"
        }
    }
}

如您所见,当它采用这种格式时,您的.yml文件在任何地方都不包含字符串列表。为了访问两个字符串“ MrBahur”和“ SlayZBro”,您需要替换以下代码:

for (String x : getConfig().getStringList("mute"))

显示以下内容:

for (String x : getConfig().getConfigurationSection("mute").getKeys(false))

如果您参考方法getConfigurationSection(String)getKeys(boolean)的文档,则将确切设置此方法的工作状态。

请注意,在Bukkit开发人员方面,StackOverflow并不是最活跃的。我通常会回答人们提出的任何问题,但在这个标签上我看不到其他很多活跃的人。 SpigotMC开发人员论坛往往​​更活跃。