From 557459f4e1beb55af9d5a304b152a31fb40a8090 Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 9 Nov 2021 22:01:18 +0000 Subject: [PATCH] Add AbstractJvmPlugin.save and AbstractJvmPlugin.savePluginData, close #408 --- .../src/plugin/jvm/AbstractJvmPlugin.kt | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt b/backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt index cf9f2390..635c5635 100644 --- a/backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt +++ b/backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt @@ -57,6 +57,24 @@ public abstract class AbstractJvmPlugin @JvmOverloads constructor( @JvmName("reloadPluginConfig") public fun T.reload(): Unit = loader.configStorage.load(this@AbstractJvmPlugin, this) + /** + * 立即保存 [PluginData] + * + * @see reloadPluginData + * @since 2.9 + */ + @JvmName("savePluginData") + public fun T.save(): Unit = loader.dataStorage.store(this@AbstractJvmPlugin, this) + + /** + * 立即保存 [PluginConfig] + * + * @see reloadPluginConfig + * @since 2.9 + */ + @JvmName("savePluginConfig") + public fun T.save(): Unit = loader.configStorage.store(this@AbstractJvmPlugin, this) + @ConsoleExperimentalApi public override val autoSaveIntervalMillis: LongRange = 30.secondsToMillis..10.minutesToMillis } @@ -76,3 +94,21 @@ public inline fun AbstractJvmPlugin.reloadPluginData(instance: PluginData): Unit */ @JvmSynthetic public inline fun AbstractJvmPlugin.reloadPluginConfig(instance: PluginConfig): Unit = this.run { instance.reload() } + +/** + * 立即保存 [PluginData] + * + * @see AbstractJvmPlugin.save + * @since 2.9 + */ +@JvmSynthetic +public inline fun AbstractJvmPlugin.savePluginData(instance: PluginData): Unit = this.run { instance.save() } + +/** + * 立即保存 [PluginConfig] + * + * @see AbstractJvmPlugin.save + * @since 2.9 + */ +@JvmSynthetic +public inline fun AbstractJvmPlugin.savePluginConfig(instance: PluginConfig): Unit = this.run { instance.save() }