bukkit plugin.yml external var

时间:2014-02-17 18:00:22

标签: java bukkit

我在1天前开始使用脚本java,我正在使用bukkit。

我的问题是如何将值(变量)设置为外部文件(plugin.yml)?

像这样

plugin.yml

commandforx: ABC

main.java

if(cmd.getName().equalsIgnoreCase( *commandforx* )) ......

所以我的目标是将var commandforx从plugin.yml获取到main.java

并且继承了我的第二个问题,我如何保存坐标?

还设置&获取plugin.yml的坐标...

提前谢谢

3 个答案:

答案 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();
}