import net.mamoe.mirai.console.data.Value;
import net.mamoe.mirai.console.data.java.JAutoSavePluginData;
import net.mamoe.mirai.console.plugin.PluginManager;
import net.mamoe.mirai.console.plugin.jvm.JavaPlugin;
import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescriptionBuilder;
import net.mamoe.mirai.console.terminal.MiraiConsoleImplementationTerminal;
import net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader;
public class DataTest {
public static class MyData extends JAutoSavePluginData {
public static final MyData INSTANCE = new MyData();
public MyData() { super("testSaveName"); }
public final Value<String> strMember = value("str");
public final Value<Integer> intMember = value(1);
}
public static class MockPlugin extends JavaPlugin {
public static final MockPlugin INSTANCE = new MockPlugin();
public MockPlugin() {
super(new JvmPluginDescriptionBuilder("org.test.test", "1.0.0").build());
}
}
@Before
public void beforeTest() {
MiraiConsoleTerminalLoader.INSTANCE.startAsDaemon(new MiraiConsoleImplementationTerminal());
PluginManager.INSTANCE.loadPlugin(MockPlugin.INSTANCE);
}
@Test
public void testData() {
MockPlugin.INSTANCE.reloadPluginData(MyData.INSTANCE);
assertEquals("str", MyData.INSTANCE.strMember.get());
assertEquals(Integer.valueOf(1), MyData.INSTANCE.intMember.get());
}
}
问题描述
即使JAutoSavePluginData里只有Value(基础数据类型)的成员,其写出的文件内容也只有最外层的
{}
,无任何成员。如果JAutoSavePluginData目前已经是无法使用且暂无人维护修复,建议修改开发文档中的描述,例如指出Mirai Console不再提供PluginData的Java适配器——JAutoSavePluginData。
复现
如下Test可通过测试,运行结束后
data/org.test.test/testSaveName.yml
内容为{}
mirai-core 版本
2.8.0
bot-protocol
ANDROID_PHONE
其他组件版本
No response
系统日志
网络日志
补充信息
相关论坛帖子