新人开发求助->怎么将数据保存到pluginData
-
数据为什么不写入文件啊,我可以在代码中读取和修改数据 但是他不写入plugindata文件夹下面
// 数据实体类 public class MyPluginData extends JAutoSavePluginData { public static final MyPluginData INSTANCE = new MyPluginData("MyHelpData"); public final Value<String> string = value("test"); // 默认值 "test" public MyPluginData(@NotNull String saveName) { super(saveName); } } // 读取数据 private void onFriendMessage(GroupMessageEvent event) { if (event.getMessage().contentToString().equals("你好")) { final Value<String> string = MyPluginData.INSTANCE.string; final String s = string.get(); event.getSubject().sendMessage(s); event.getSubject().sendMessage("Hello Mirai :)"); MyPluginData.INSTANCE.string.set("测试"); String s1 = MyPluginData.INSTANCE.string.get(); event.getSubject().sendMessage(s1); } }
plugindata里面新建文件了 但是只有2个{} 其他什么数据都没有 连默认的test都没有
-
我也遇到了这个问题。但考虑到我需要保存复杂结构数据,而JAutoSavePluginData注定无法实现,所以我很快转为自己实现,就没用JAutoSavePluginData。也就没深究为什么JAutoSavePluginData连最简单的string也没写到文件里。也许目前JAutoSavePluginData确实是无法使用的状态吧。
-
JAutoSavePluginData无法保存的话,可以试着存到数据库啊,如果连不上,转为JSON格式的文本存本地也行。读取的时候可以从本地读取到程序缓存(手撸个Map就能当缓存),然后从Map读。
-
我找到问题所在了,谢谢大佬们 我用了kotlin 之前写的变量修饰符是用的官方例子中的val 刚刚看到一位大佬说要修改成var才能修改值,现在改成var 已经正常写入文件了,java程序应该也是这个问题 我前面用了final修饰符 怪不得不能写入文件
-
-
@hundun000 哦哦 谢谢大佬 我先用着kotlin吧 反正数据也不复杂