将vars / objects保存到YAML文件(Spigot)

时间:2017-05-06 10:47:52

标签: java file save yaml bukkit

我的插件中存储了WE Selection类的一些变量。但我想在插件关闭/重启后使用它们。因此,我需要将Selection vars保存到YAML文件,然后再次将其加载到onEnable

private Selection sboss;
private Selection s1;
private Selection s2;
private Selection s3;
private Selection s4;

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您必须序列化Selection,然后将其作为String保存到YAML文件中。要在onEnable中重新获得相同的选择,您必须编写一个反序列化String的方法。

例如,CuboidSelection需要World和两个Location进行实例化。您可以将CuboidSelection序列化为String,如下所示:worldname:x1:y1:z1:x2:y2:z2

要反序列化CuboidSelection,您将从YAML文件中获取字符串,将其拆分为:,通过Bukkit#getWorld(worldName)获取世界并解析坐标。您现在可以创建两个位置并将它们与World一起使用以恢复CuboidSelection。

答案 1 :(得分:0)

您可以保存到YAML文件的唯一内容是数组和基本类型,因此您无法保存整个Selection对象。最接近你想要的东西是单独保存对象的值,然后通过实例化一个新的选择来设置它们。