Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright 2019-2020 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link.
*
* https://github.com/mamoe/mirai/blob/master/LICENSE
*/
@file:Suppress("unused", "EXPOSED_SUPER_CLASS")
package net.mamoe.mirai.console.data.java
import net.mamoe.mirai.console.data.*
import net.mamoe.mirai.console.internal.data.cast
import net.mamoe.mirai.console.internal.data.setValueBySerializer
import net.mamoe.mirai.console.internal.data.valueImpl
import net.mamoe.mirai.console.plugin.jvm.JvmPlugin
import kotlin.reflect.KClass
import kotlin.reflect.KType
import kotlin.reflect.KTypeProjection
import kotlin.reflect.full.createType
/**
* 供 Java 用户使用的 [PluginData]. 参考 [PluginData] 以获取更多信息.
*
* 在 [JvmPlugin] 的典型实现方式:
* ```
* // PluginMain.java
* public final class PluginMain extends JavaPlugin {
* public static PluginMain INSTANCE;
* public PluginMain() {
* INSTANCE = this;
* }
* @Override
* public onLoad() {
* this.reloadPluginData(MyPluginData.INSTANCE); // 读取文件等
* }
* }
*
* // MyPluginData.java
* public class MyPluginData extends JAutoSavePluginData {
* public static final MyPluginData INSTANCE = new MyPluginData();
*
* public final Value string = value("test"); // 默认值 "test"
*
* public final Value> list = typedValue(createKType(List.class, createKType(String.class))); // 无默认值, 自动创建空 List
*
* public final Value