From 76d6f849a4e7408363262e28f928afd3e9c993d8 Mon Sep 17 00:00:00 2001 From: Grand-cocoa <1075576561@qq.com49111108+grand-cocoa@users.noreply.github.com> Date: Wed, 4 Sep 2024 20:03:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor(bot-config):=20=E9=87=8D=E6=9E=84Bot?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=B9=B6=E6=9B=B4=E6=96=B0=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重构BotConfig类并移动至新的package:info.alinadace.miraibot.configuration。 - 从BotConfiguration.kt中移除未使用的imports和函数。 - 在Initialization.kt中添加PostConstruct注解用于服务初始化。 - 更新ExampleService.kt以使用新的配置package。 - 通过更改名称为'functionMap'并使用GlobalEventChannel优化事件处理。 此重构改进了代码结构,更新了配置的初始化,并增强了事件处理机制。 --- .../miraibot/bean/BotConfiguration.kt | 10 ++----- .../{config => configuration}/BotConfig.kt | 2 +- .../miraibot/configuration/Initialization.kt | 30 +++++++++++++++++++ .../miraibot/service/ExampleService.kt | 2 +- 4 files changed, 34 insertions(+), 10 deletions(-) rename src/main/kotlin/info/alinadace/miraibot/{config => configuration}/BotConfig.kt (93%) create mode 100644 src/main/kotlin/info/alinadace/miraibot/configuration/Initialization.kt diff --git a/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt b/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt index 64787ba..9f42d50 100644 --- a/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt +++ b/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt @@ -1,10 +1,9 @@ package info.alinadace.miraibot.bean import info.alinadace.miraibot.annotation.BotFunction -import info.alinadace.miraibot.config.BotConfig +import info.alinadace.miraibot.configuration.BotConfig import info.alinadace.miraibot.enums.LoginType import info.alinadace.miraibot.service.Service -import jakarta.annotation.PostConstruct import jakarta.annotation.Resource import net.mamoe.mirai.Bot import net.mamoe.mirai.BotFactory @@ -43,7 +42,7 @@ class BotConfiguration { } } - @Bean + @Bean("functionMap") fun botFunctionMap(): HashMap, MutableList>> { val eventMap = HashMap, MutableList>>(); for (service in services) { @@ -67,11 +66,6 @@ class BotConfiguration { return eventMap } - @PostConstruct - fun init() { - - } - private fun BotConfiguration.extracted() { fileBasedDeviceInfo() protocol = BotConfiguration.MiraiProtocol.ANDROID_WATCH diff --git a/src/main/kotlin/info/alinadace/miraibot/config/BotConfig.kt b/src/main/kotlin/info/alinadace/miraibot/configuration/BotConfig.kt similarity index 93% rename from src/main/kotlin/info/alinadace/miraibot/config/BotConfig.kt rename to src/main/kotlin/info/alinadace/miraibot/configuration/BotConfig.kt index 08b29d5..9570509 100644 --- a/src/main/kotlin/info/alinadace/miraibot/config/BotConfig.kt +++ b/src/main/kotlin/info/alinadace/miraibot/configuration/BotConfig.kt @@ -1,4 +1,4 @@ -package info.alinadace.miraibot.config +package info.alinadace.miraibot.configuration import info.alinadace.miraibot.enums.LoginType import org.springframework.beans.factory.annotation.Value diff --git a/src/main/kotlin/info/alinadace/miraibot/configuration/Initialization.kt b/src/main/kotlin/info/alinadace/miraibot/configuration/Initialization.kt new file mode 100644 index 0000000..98fdf76 --- /dev/null +++ b/src/main/kotlin/info/alinadace/miraibot/configuration/Initialization.kt @@ -0,0 +1,30 @@ +package info.alinadace.miraibot.configuration + +import info.alinadace.miraibot.service.Service +import jakarta.annotation.PostConstruct +import jakarta.annotation.Resource +import net.mamoe.mirai.event.Event +import net.mamoe.mirai.event.GlobalEventChannel +import kotlin.reflect.KClass + +/** + * 机器人功能初始化 + * @author Kane + * @since 2024/9/4 18:49 + */ +@org.springframework.stereotype.Service +class Initialization { + @Resource(name = "functionMap") + lateinit var functionMap: HashMap, MutableList>>; + + @PostConstruct + fun initFunction() { + functionMap.forEach { v -> + GlobalEventChannel.subscribeAlways(v.key) { + val filter = v.value.filter { x -> x.entrance(this) } + filter.forEach { x -> x.active(this) } + } + } + print("Channel complete") + } +} diff --git a/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt b/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt index aa3299c..457dbcd 100644 --- a/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt +++ b/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt @@ -1,7 +1,7 @@ package info.alinadace.miraibot.service import info.alinadace.miraibot.annotation.BotFunction -import info.alinadace.miraibot.config.BotConfig +import info.alinadace.miraibot.configuration.BotConfig import net.mamoe.mirai.event.events.FriendMessageEvent import net.mamoe.mirai.message.data.PlainText