我目前在保存YAML文件的默认值时遇到了问题(我在Eclipse上定义了该文件)。 YAML文件确实生成,但它是一个空文件。 (应该是我之前在Eclipse上输入过的东西)。有人能弄清楚我错过了什么吗?
也许在SettingsManager类的setup()方法中有问题,因为它是生成lang.yml文件的方法,而main()方法是在Main类上的onEnable()上调用的。 / p>
关于pastebin的完整课程:
http://pastebin.com/wEeiXyRi (Main.class)
http://pastebin.com/82Hf8nB7 (SettingsManager.class)
我还在Eclipse的项目文件夹中添加了文件config.yml
和lang.yml
。
答案 0 :(得分:0)
您需要从src目录中的配置文件加载默认值,然后使用配置流将它们设置为您的配置。例如,使用您的语言配置:
defConfigStream = new InputStreamReader(plugin.getResource("lang.yml"), "UTF8");
然后,假设langConfig是你的配置变量:
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
langConfig.setDefaults(defConfig);
并保存您的配置。
答案 1 :(得分:0)
Bukkit提供了一种有用的方法,可以将JavaPlugin.saveDefaultConfig()
(javadocs here)形式的默认config.yml文件保存到插件的目录中。请注意,它不会覆盖现有的配置文件。
如果要将.jar插件文件中包含的其他文件保存到插件的目录中,可以使用JavaPlugin.saveResource()
方法(javadocs here)。例如,在onEnable
中,如果包含行this.saveResource("lang.yml", true)
,则插件目录中的lang.yml将始终被jar文件中包含的版本覆盖。
答案 2 :(得分:0)
getConfig().options().copyDefaults(true);
reloadConfig();
saveConfig();
同样的事情发生在我身上,代码会在保存之前更新您的配置,因此它不会覆盖您的更改