MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    新人开发求助->怎么将数据保存到pluginData

    使用交流
    3
    6
    460
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • B
      boom33du 最后由 编辑

      数据为什么不写入文件啊,我可以在代码中读取和修改数据 但是他不写入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都没有

      1 条回复 最后回复 回复 引用 0
      • H
        hundun000 ⭐2021⭐ 最后由 编辑

        我也遇到了这个问题。但考虑到我需要保存复杂结构数据,而JAutoSavePluginData注定无法实现,所以我很快转为自己实现,就没用JAutoSavePluginData。也就没深究为什么JAutoSavePluginData连最简单的string也没写到文件里。也许目前JAutoSavePluginData确实是无法使用的状态吧。

        1 条回复 最后回复 回复 引用 0
        • wssy001
          wssy001 ⭐2021⭐ 最后由 wssy001 编辑

          JAutoSavePluginData无法保存的话,可以试着存到数据库啊,如果连不上,转为JSON格式的文本存本地也行。读取的时候可以从本地读取到程序缓存(手撸个Map就能当缓存),然后从Map读。

          1 条回复 最后回复 回复 引用 0
          • B
            boom33du 最后由 编辑

            我找到问题所在了,谢谢大佬们 我用了kotlin 之前写的变量修饰符是用的官方例子中的val 刚刚看到一位大佬说要修改成var才能修改值,现在改成var 已经正常写入文件了,java程序应该也是这个问题 我前面用了final修饰符 怪不得不能写入文件

            H 1 条回复 最后回复 回复 引用 0
            • H
              hundun000 ⭐2021⭐ @boom33du 最后由 编辑

              @boom33du 你能用kotlin就行。
              java不是final的问题,是bug,等官方修issue

              B 1 条回复 最后回复 回复 引用 0
              • B
                boom33du @hundun000 最后由 编辑

                @hundun000 哦哦 谢谢大佬 我先用着kotlin吧 反正数据也不复杂

                1 条回复 最后回复 回复 引用 0
                • 1 / 1
                • First post
                  Last post
                Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact