From a4d78b3d210069baef4affd56dd39baf452a530c Mon Sep 17 00:00:00 2001 From: "jiahua.liu" <n@mamoe.net> Date: Sun, 19 Jan 2020 19:30:18 +0800 Subject: [PATCH] plugin supporting --- .../net/mamoe/mirai/plugin/PluginBase.kt | 9 ++++- .../mirai/imageplugin/ImagePluginMain.java | 20 ----------- .../mirai/imageplugin/ImageSenderMain.kt | 36 +++++++++++++++++++ .../src/main/resources/plugin.yml | 2 +- 4 files changed, 45 insertions(+), 22 deletions(-) delete mode 100644 mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImagePluginMain.java create mode 100644 mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImageSenderMain.kt diff --git a/mirai-console/src/main/kotlin/net/mamoe/mirai/plugin/PluginBase.kt b/mirai-console/src/main/kotlin/net/mamoe/mirai/plugin/PluginBase.kt index 071e4a854..3e75e0083 100644 --- a/mirai-console/src/main/kotlin/net/mamoe/mirai/plugin/PluginBase.kt +++ b/mirai-console/src/main/kotlin/net/mamoe/mirai/plugin/PluginBase.kt @@ -2,6 +2,7 @@ package net.mamoe.mirai.plugin import kotlinx.coroutines.* import net.mamoe.mirai.utils.DefaultLogger +import net.mamoe.mirai.utils.MiraiLogger import net.mamoe.mirai.utils.io.encodeToString import java.io.File import java.net.URL @@ -58,6 +59,12 @@ abstract class PluginBase(coroutineContext: CoroutineContext) : CoroutineScope { this.pluginDescription = pluginDescription this.onLoad() } + + fun getPluginManager() = PluginManager + + val logger: MiraiLogger by lazy { + DefaultLogger(pluginDescription.name) + } } class PluginDescription( @@ -125,7 +132,7 @@ object PluginManager { File(it).mkdirs() } - private val logger = DefaultLogger("Mirai Plugin Manager") + val logger = DefaultLogger("Mirai Plugin Manager") //已完成加载的 private val nameToPluginBaseMap: MutableMap<String, PluginBase> = mutableMapOf() diff --git a/mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImagePluginMain.java b/mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImagePluginMain.java deleted file mode 100644 index 47b9b45aa..000000000 --- a/mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImagePluginMain.java +++ /dev/null @@ -1,20 +0,0 @@ -package net.mamoe.mirai.imageplugin; - -import net.mamoe.mirai.plugin.PluginBase; - -public class ImagePluginMain extends PluginBase { - static { - System.out.println("Static Loaded"); - } - - @Override - public void onLoad() { - System.out.println("Loaded"); - } - - @Override - public void onEnable() { - System.out.println("Enabled"); - - } -} diff --git a/mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImageSenderMain.kt b/mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImageSenderMain.kt new file mode 100644 index 000000000..576509634 --- /dev/null +++ b/mirai-plugins/image-sender/src/main/kotlin/net/mamoe/mirai/imageplugin/ImageSenderMain.kt @@ -0,0 +1,36 @@ +import kotlinx.coroutines.GlobalScope +import net.mamoe.mirai.event.events.BotLoginSucceedEvent +import net.mamoe.mirai.event.subscribeAlways +import net.mamoe.mirai.event.subscribeMessages +import net.mamoe.mirai.message.data.At +import net.mamoe.mirai.plugin.PluginBase +import net.mamoe.mirai.utils.MiraiExperimentalAPI + +class ImageSenderMain : PluginBase() { + + @MiraiExperimentalAPI + override fun onEnable() { + logger.info("Image Sender plugin enabled") + GlobalScope.subscribeAlways<BotLoginSucceedEvent> { + logger.info("${this.bot.uin} login succeed, it will be controlled by Image Sender Plugin") + this.bot.subscribeMessages { + + case("at me") { + (At(sender) + " ? ").reply() + } + + (contains("image") || contains("图")) { + (At(sender) + " ? ").reply() + } + } + } + } + + override fun onLoad() { + logger.info("loading...") + } + + override fun onDisable() { + + } +} \ No newline at end of file diff --git a/mirai-plugins/image-sender/src/main/resources/plugin.yml b/mirai-plugins/image-sender/src/main/resources/plugin.yml index 4f08b0986..1e6b39b29 100644 --- a/mirai-plugins/image-sender/src/main/resources/plugin.yml +++ b/mirai-plugins/image-sender/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: ImageSender -main: net.mamoe.mirai.imageplugin.ImagePluginMain.kt.kt +main: net.mamoe.mirai.imageplugin.ImagePluginMain version: 1.0.0 author: mamoe info: a demo plugin of mirai