如何从 config.yml Bukkit 获取字符串
How to get strings from config.yml 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);
}
通常,Whosebug 上的人会鼓励您解释到目前为止您为使代码正常工作所做的尝试,以便将来了解这一点。
无论如何,您遇到的问题是您正在尝试访问数据,就好像它们是一个字符串列表(具体来说,您调用 getStringList(String)
)。 YAML(写入 .yml 文件的格式)本质上是 JSON 的 readable/simple 版本。您的 .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)
and getKeys(boolean)
的文档,您将准确设置此方法的作用。
请注意,Whosebug 在 Bukkit 开发人员方面并不是最活跃的。我通常会回答人们提出的任何问题,但我没有看到很多其他人在这个标签上如此活跃。 SpigotMC 开发者论坛更加活跃。
我有一个这样的配置文件:
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);
}
通常,Whosebug 上的人会鼓励您解释到目前为止您为使代码正常工作所做的尝试,以便将来了解这一点。
无论如何,您遇到的问题是您正在尝试访问数据,就好像它们是一个字符串列表(具体来说,您调用 getStringList(String)
)。 YAML(写入 .yml 文件的格式)本质上是 JSON 的 readable/simple 版本。您的 .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)
and getKeys(boolean)
的文档,您将准确设置此方法的作用。
请注意,Whosebug 在 Bukkit 开发人员方面并不是最活跃的。我通常会回答人们提出的任何问题,但我没有看到很多其他人在这个标签上如此活跃。 SpigotMC 开发者论坛更加活跃。