diff --git a/.gitea/workflows/build-test.yaml b/.gitea/workflows/build-test.yaml index c537cc6..cbb589f 100644 --- a/.gitea/workflows/build-test.yaml +++ b/.gitea/workflows/build-test.yaml @@ -1,6 +1,6 @@ name: Gitea Actions Demo run-name: ${{ gitea.actor }} is testing out Gitea Actions πŸš€ -on: [push] +on: [ push ] jobs: Explore-Gitea-Actions: diff --git a/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt b/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt index 5fb481d..64787ba 100644 --- a/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt +++ b/src/main/kotlin/info/alinadace/miraibot/bean/BotConfiguration.kt @@ -4,6 +4,7 @@ import info.alinadace.miraibot.annotation.BotFunction import info.alinadace.miraibot.config.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 @@ -13,8 +14,6 @@ import net.mamoe.mirai.utils.BotConfiguration import org.springframework.boot.autoconfigure.AutoConfiguration import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean -import java.util.Collections -import java.util.HashMap import kotlin.reflect.KClass /** @@ -26,23 +25,26 @@ import kotlin.reflect.KClass @EnableConfigurationProperties(BotConfig::class) class BotConfiguration { - @Resource - private val services: List> = Collections.emptyList(); - @Bean(initMethod = "login") - fun bot(config: BotConfig): Bot{ + @Resource + private lateinit var services: List> + + + @Bean + fun bot(config: BotConfig): Bot { return when (config.type) { - LoginType.PASSWORD -> BotFactory.newBot(config.id, config.password){ + LoginType.PASSWORD -> BotFactory.newBot(config.id, config.password) { extracted() } - LoginType.QRCODE -> BotFactory.newBot(config.id, BotAuthorization.byQRCode()){ + + LoginType.QRCODE -> BotFactory.newBot(config.id, BotAuthorization.byQRCode()) { extracted() } } } @Bean - fun botFunctionMap(): HashMap, MutableList>>{ + fun botFunctionMap(): HashMap, MutableList>> { val eventMap = HashMap, MutableList>>(); for (service in services) { val clazz = service::class @@ -50,11 +52,11 @@ class BotConfiguration { if (annotations.isEmpty()) continue var function: BotFunction? = null for (annotation in annotations) { - if (annotation is BotFunction){ + if (annotation is BotFunction) { function = annotation } } - if (function == null){ + if (function == null) { continue } for (kClass in function.value) { @@ -65,6 +67,11 @@ 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/config/BotConfig.kt index 9bc608a..08b29d5 100644 --- a/src/main/kotlin/info/alinadace/miraibot/config/BotConfig.kt +++ b/src/main/kotlin/info/alinadace/miraibot/config/BotConfig.kt @@ -16,10 +16,12 @@ class BotConfig(val id: Long, val password: String, val type: LoginType) { companion object { @JvmStatic val NULL_INSTANCE = BotConfig(0, "", LoginType.PASSWORD) + @JvmStatic @Value("\${bot.admin}") val ADMIN_ID: Long = 0; } + fun isNull(config: BotConfig): Boolean { return config == NULL_INSTANCE } diff --git a/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt b/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt index 8ba7df0..aa3299c 100644 --- a/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt +++ b/src/main/kotlin/info/alinadace/miraibot/service/ExampleService.kt @@ -2,24 +2,23 @@ package info.alinadace.miraibot.service import info.alinadace.miraibot.annotation.BotFunction import info.alinadace.miraibot.config.BotConfig -import net.mamoe.mirai.event.events.GroupMessageEvent -import net.mamoe.mirai.event.events.MessageEvent +import net.mamoe.mirai.event.events.FriendMessageEvent import net.mamoe.mirai.message.data.PlainText /** * @author Kane * @since 2024/8/29 δΈ‹εˆ3:47 */ -@BotFunction(MessageEvent::class, GroupMessageEvent::class) -class ExampleService: Service{ +@BotFunction(FriendMessageEvent::class) +class ExampleService : Service { /** * 服劑ε…₯口 */ - override fun entrance(event: MessageEvent): Boolean { + override fun entrance(event: FriendMessageEvent): Boolean { val chain = event.message - if (chain.size == 1 && chain[0] is PlainText){ + if (chain.size == 1 && chain[0] is PlainText) { if (chain[0].contentToString() == "ζ΅‹θ―•" && event.sender.id == BotConfig.ADMIN_ID) { return true } @@ -30,7 +29,7 @@ class ExampleService: Service{ /** * 服劑葌为 */ - override suspend fun active(event: MessageEvent) { + override suspend fun active(event: FriendMessageEvent) { event.subject.sendMessage("ζ΅‹θ―•ζˆεŠŸ") } } diff --git a/src/main/kotlin/info/alinadace/miraibot/service/Service.kt b/src/main/kotlin/info/alinadace/miraibot/service/Service.kt index ce93ca6..c649c7e 100644 --- a/src/main/kotlin/info/alinadace/miraibot/service/Service.kt +++ b/src/main/kotlin/info/alinadace/miraibot/service/Service.kt @@ -7,7 +7,7 @@ import net.mamoe.mirai.event.Event * @author Kane * @since 2024/8/29 δΈ‹εˆ3:49 */ -interface Service { +interface Service { /** * 服劑ε…₯口 */