【问题标题】:Save vars/objects to YAML file (Spigot)将变量/对象保存到 YAML 文件 (Spigot)
【发布时间】:2017-05-06 10:47:52
【问题描述】:
我的插件中存储了一些 WE Selection 类的变量。但我想在插件关闭/重新启动后使用它们。因此,它需要我将选择变量保存到 YAML 文件中,然后在 onEnable 中再次加载它们。
private Selection sboss;
private Selection s1;
private Selection s2;
private Selection s3;
private Selection s4;
我该怎么做?
【问题讨论】:
标签:
java
file
save
yaml
bukkit
【解决方案1】:
您必须对选择进行序列化,然后将其作为字符串保存到您的 YAML 文件中。要在onEnable 中重新获得相同的选择,您必须编写一个反序列化字符串的方法。
例如CuboidSelection 需要一个World 和两个Location 来实例化。您可以像这样将 CuboidSelection 序列化为字符串:worldname:x1:y1:z1:x2:y2:z2
要反序列化 CuboidSelection,您可以从 YAML 文件中获取字符串,将其拆分为 :,通过 Bukkit#getWorld(worldName) 获取世界并解析坐标。您现在可以创建两个 Locations 并将它们与 World 一起使用来恢复您的 CuboidSelection。
【解决方案2】:
您可以保存到 YAML 文件的唯一内容是数组和原始类型,因此您无法保存整个 Selection 对象。最接近您想要的方法是单独保存对象的值,然后通过实例化新的选择来设置它们。