JavaAutoSavePluginConfig

abstract class JavaAutoSavePluginConfig(saveName: String) : JavaAutoSavePluginData, PluginConfig

一个插件的配置数据, 用于和用户交互.

用户可通过 mirai-console 前端 (如在 Android 中可视化实现) 修改这些配置, 修改会自动写入这个对象中.

提示: 插件内部的数据应用 PluginData 存储, 而不能使用 PluginConfig.

实现

JavaAutoSavePluginData 的示例基础上, 修改类定义

// 原
public class AccountPluginData extends JavaAutoSavePluginData {
// 修改为
public class AccountPluginConfig extends JavaAutoSavePluginConfig {

即可将一个 PluginData 变更为 PluginConfig.

Since

2.11

See also

Constructors

Link copied to clipboard
fun JavaAutoSavePluginConfig(saveName: String)

Functions

Link copied to clipboard
open override fun onInit(owner: PluginDataHolder, storage: PluginDataStorage)

当这个 PluginData 被放入一个 PluginDataStorage 时调用

Link copied to clipboard
override fun onValueChanged(value: Value<*>)

当所属于这个 PluginDataValue 被修改时被调用.

Link copied to clipboard
operator fun <T : SerializerAwareValue<*>> T.provideDelegate(thisRef: Any?, property: KProperty<*>): T

使用 by value() 时自动调用此方法, 添加对 Value 的值修改的跟踪, 并创建 ValueNode 加入 valueNodes

Link copied to clipboard
open fun <T : SerializerAwareValue<*>> track(    value: T,     valueName: String,     annotations: List<Annotation>): T

供手动实现时值跟踪使用 (如 Java 用户). 一般 Kotlin 用户需使用 provideDelegate

Link copied to clipboard
fun <T : Any> typedValue(    name: String,     type: KType,     default: T? = null): SerializerAwareValue<T>

创建一个支持泛型的 Value.

Link copied to clipboard
fun value(name: String, default: Boolean): SerializerAwareValue<Boolean>

创建一个名称为 name, 类型为 BooleanValue, 并设置初始值为 default.

fun value(name: String, default: Byte): SerializerAwareValue<Byte>

创建一个名称为 name, 类型为 ByteValue, 并设置初始值为 default.

fun value(name: String, default: Char): SerializerAwareValue<Char>

创建一个名称为 name, 类型为 CharValue, 并设置初始值为 default.

fun value(name: String, default: Double): SerializerAwareValue<Double>

创建一个名称为 name, 类型为 DoubleValue, 并设置初始值为 default.

fun value(name: String, default: Float): SerializerAwareValue<Float>

创建一个名称为 name, 类型为 FloatValue, 并设置初始值为 default.

fun value(name: String, default: Int): SerializerAwareValue<Int>

创建一个名称为 name, 类型为 IntValue, 并设置初始值为 default.

fun value(name: String, default: Long): SerializerAwareValue<Long>

创建一个名称为 name, 类型为 LongValue, 并设置初始值为 default.

fun value(name: String, default: Short): SerializerAwareValue<Short>

创建一个名称为 name, 类型为 ShortValue, 并设置初始值为 default.

fun value(name: String, default: String): SerializerAwareValue<String>

创建一个名称为 name, 类型为 StringValue, 并设置初始值为 default.

Properties

Link copied to clipboard
override val saveName: String

这个 PluginData 保存时使用的名称.

Link copied to clipboard
open override val serializersModule: SerializersModule

序列化本对象数据时使用的 SerializersModule. 用于支持多态序列化等. 在序列化时会先使用 PluginData.serializersModule, 再对无法找到 serializer 的类型使用 MessageSerializers.serializersModule.

Link copied to clipboard
override val updaterSerializer: KSerializer<Unit>

所有 valueNodes 更新和保存序列化器.

Link copied to clipboard

添加了追踪的 ValueNode 列表, 即通过 by value 初始化的属性列表.