MiraiForum

    • Register
    • Login
    • Search
    • Popular
    • Recent
    • Unsolved
    • Tags
    • Groups
    • 友情链接

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

    使用交流
    3
    6
    188
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      boom33du last edited by

      数据为什么不写入文件啊,我可以在代码中读取和修改数据 但是他不写入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 Reply Last reply Reply Quote 0
      • H
        hundun000 ⭐2021⭐ last edited by

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

        1 Reply Last reply Reply Quote 0
        • wssy001
          wssy001 ⭐2021⭐ last edited by wssy001

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

          1 Reply Last reply Reply Quote 0
          • B
            boom33du last edited by

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

            H 1 Reply Last reply Reply Quote 0
            • H
              hundun000 ⭐2021⭐ @boom33du last edited by

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

              B 1 Reply Last reply Reply Quote 0
              • B
                boom33du @hundun000 last edited by

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

                1 Reply Last reply Reply Quote 0
                • 1 / 1
                • First post
                  Last post
                Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact