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