refactor(bot-config): 重构Bot配置并更新初始化
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 5s

- 重构BotConfig类并移动至新的package:info.alinadace.miraibot.configuration。
- 从BotConfiguration.kt中移除未使用的imports和函数。
- 在Initialization.kt中添加PostConstruct注解用于服务初始化。
- 更新ExampleService.kt以使用新的配置package。
- 通过更改名称为'functionMap'并使用GlobalEventChannel优化事件处理。

此重构改进了代码结构,更新了配置的初始化,并增强了事件处理机制。
This commit is contained in:
Grand-cocoa 2024-09-04 20:03:47 +08:00
parent a7aa2bda2b
commit 76d6f849a4
4 changed files with 34 additions and 10 deletions

View File

@ -1,10 +1,9 @@
package info.alinadace.miraibot.bean package info.alinadace.miraibot.bean
import info.alinadace.miraibot.annotation.BotFunction 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.enums.LoginType
import info.alinadace.miraibot.service.Service import info.alinadace.miraibot.service.Service
import jakarta.annotation.PostConstruct
import jakarta.annotation.Resource import jakarta.annotation.Resource
import net.mamoe.mirai.Bot import net.mamoe.mirai.Bot
import net.mamoe.mirai.BotFactory import net.mamoe.mirai.BotFactory
@ -43,7 +42,7 @@ class BotConfiguration {
} }
} }
@Bean @Bean("functionMap")
fun botFunctionMap(): HashMap<KClass<out Event>, MutableList<Service<Event>>> { fun botFunctionMap(): HashMap<KClass<out Event>, MutableList<Service<Event>>> {
val eventMap = HashMap<KClass<out Event>, MutableList<Service<Event>>>(); val eventMap = HashMap<KClass<out Event>, MutableList<Service<Event>>>();
for (service in services) { for (service in services) {
@ -67,11 +66,6 @@ class BotConfiguration {
return eventMap return eventMap
} }
@PostConstruct
fun init() {
}
private fun BotConfiguration.extracted() { private fun BotConfiguration.extracted() {
fileBasedDeviceInfo() fileBasedDeviceInfo()
protocol = BotConfiguration.MiraiProtocol.ANDROID_WATCH protocol = BotConfiguration.MiraiProtocol.ANDROID_WATCH

View File

@ -1,4 +1,4 @@
package info.alinadace.miraibot.config package info.alinadace.miraibot.configuration
import info.alinadace.miraibot.enums.LoginType import info.alinadace.miraibot.enums.LoginType
import org.springframework.beans.factory.annotation.Value import org.springframework.beans.factory.annotation.Value

View File

@ -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<KClass<out Event>, MutableList<Service<Event>>>;
@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")
}
}

View File

@ -1,7 +1,7 @@
package info.alinadace.miraibot.service package info.alinadace.miraibot.service
import info.alinadace.miraibot.annotation.BotFunction 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.event.events.FriendMessageEvent
import net.mamoe.mirai.message.data.PlainText import net.mamoe.mirai.message.data.PlainText