我在1天前开始使用脚本java,我正在使用bukkit。
我的问题是如何将值(变量)设置为外部文件(plugin.yml)?
像这样plugin.yml
commandforx: ABC
main.java
if(cmd.getName().equalsIgnoreCase( *commandforx* )) ......
所以我的目标是将var commandforx从plugin.yml获取到main.java
并且继承了我的第二个问题,我如何保存坐标?
还设置&获取plugin.yml的坐标...
提前谢谢
答案 0 :(得分:1)
如果您想将commandforx
设置为字符串ABC
,可以在主文件中执行此操作:
this.getConfig().set("commandforx", "abc");
然后得到它,你可以做到
String commandforx = this.getConfig().getString("commandforx");
只需确保在尝试获取字符串之前添加空检查,否则您将获得NullPointer
:
if(this.getConfig().contains("commandforx")
答案 1 :(得分:0)
不要在plugin.yml中存储变量。相反,您可以使用默认情况下Bukkit API中的FileConfiguration API!这是一个很好的教程:https://forums.bukkit.org/threads/tut-bukkits-new-fileconfiguration-api-create-a-yaml-configuration.42775/
或者,您可以只从已定义的文件中读取和写入(关于此的教程在线无处不在)并解析输入。这比使用FileConfiguration API更困难,但它仍然非常简单,让您可以更好地控制文件(我总是使用这种方法)。
答案 2 :(得分:0)
你应该使用YamlConfiguration这样的东西很棒。
File folder = new File("plugins//YourFolder");
File file = new File("plugins//YourFolder//YourFile.yml");
YamlConfiguration cfg = YamlConfiguration.loadFile(file);
if(!file.exist()) {
try {
file.createNewFile();
} catch(IOException e) {
e.printStackTrace();
}
}
cfg.set("commandforx", "ABC");
try {
cfg.save(file);
} catch(IOException e) {
e.printStackTrace();
}