JAutoSavePluginConfig

abstract class JAutoSavePluginConfig(saveName: String) : AutoSavePluginConfig, PluginConfig

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

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

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

实现

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

// 原
public class AccountPluginData extends JAutoSavePluginData {
// 修改为
public class AccountPluginConfig extends JAutoSavePluginConfig {

即可将一个 PluginData 变更为 PluginConfig.

See also

Constructors

Link copied to clipboard
fun JAutoSavePluginConfig(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

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 初始化的属性列表.