java Bukkit配置部分getKeys
我有一个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
我试图得到一个包含[骷髅,僵尸,蜘蛛]和任何其他可以通过给它关键的“受影响的怪物”来添加的集合。我看过类似的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。有什么建议吗
# 1 楼答案
您的配置节
effected mobs
包含一个空格,其中不允许在配置节名称中使用空格。 就我个人而言,我使用连字符(-
)在其中使用空格# 2 楼答案
因此,您实际上希望根据配置条目获取一组字符串。 这应该起作用:
请确保将您的插件名称替换为您的插件名称。 您必须在两次替换时都使用相同的字符串(区分大小写!)
然后,它将自动创建一个配置目录,其中包含一个空配置。在第一次跑步时为你加油
在第一次运行时,您还将得到一个
NullPointerexception
,因为ConfigurationSection还不存在。因此,只需转到插件文件夹,将配置内容插入到新创建的配置中即可。yml# 3 楼答案
你应该更仔细地阅读维基xD
# 4 楼答案
请尝试使用下面的代码,确保在从文件中获取信息之前创建了该文件。确保您的默认配置。yml在插件中。主目录中的jar文件。(将其放在IDE中的位置取决于具体情况。我将其放在主插件目录中,但取决于编译插件的方式,它可能需要放在src文件夹中。(我使用的是Maven项目,而不是Eclipse中的Java项目。)