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
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<KClass<out Event>, MutableList<Service<Event>>> {
val eventMap = HashMap<KClass<out Event>, MutableList<Service<Event>>>();
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

View File

@ -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

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
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