gpt4 book ai didi

java - Bukkit ConfigurationSection getKeys

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:52 26 4
gpt4 key购买 nike

我有一个 bukkit 配置文件,如下所示:

effected mobs:
skeleton:
lower hp limit: 0
upper hp limit: 0
zombie:
lower hp limit: 0
upper hp limit: 0
spider:
lower hp limit: 0
upper hp limit: 0

我正在尝试获得一个包含 [skeleton, zombie, spider] 和任何其他可以通过给它键“effected mobs”来添加的集合。我看过这个类似的 question并尝试了以下代码:

public class Main extends JavaPlugin implements Listener{
public FileConfiguration config;
public Set<String> mobsEffected;

public void onEnable(){
config = getConfig();
mobsEffected = config.getConfigurationSection("effected mobs").getKeys(false);
Bukkit.getLogger().info(String.valueOf(mobsEffected.size() ));

}
}

但大小记录为 0,而应为 3。有什么建议吗?

最佳答案

所以你实际上想根据你的配置条目获得一组字符串。这应该有效:

public class Main extends JavaPlugin implements Listener {
public FileConfiguration config;
public Set<String> mobsEffected;

public void onEnable() {
// you have to initialize your set!
mobsEffected = new HashSet<String>();
// this creates the Config
File Cfgpath = new File("plugins/yourpluginnamehere");
File Cfg = new File("plugins/yourpluginnamehere/config.yml");
try {
Cfg.createNewFile();
} catch (IOException e) {
Cfgpath.mkdirs();
try {
Cfg.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
}

config = YamlConfiguration.loadConfiguration(Cfg);
// Now it loops through all the Keys in the Configuration Section
// "effected mobs" and adds every key to your set!
for (String key : config.getConfigurationSection("effected mobs").getKeys(false)) {
mobsEffected.add(key);
}
Bukkit.getLogger().info(String.valueOf(mobsEffected.size()));

}
}

请确保将此处的插件名称替换为您的插件名称。您必须在两次必须替换它的时候都采用相同的字符串(区分大小写!)。

然后它会在第一次运行时自动为您创建一个包含空白 config.yml 的配置目录。

第一次运行时,您还会得到一个 NullPointerexception,因为 ConfigurationSection 尚不存在。所以只需转到您的插件的文件夹并将您的配置内容插入到新创建的 config.yml 中。

关于java - Bukkit ConfigurationSection getKeys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23860122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com