diff --git a/build.gradle.kts b/build.gradle.kts index f3a0b17..ff252cd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,12 +32,12 @@ dependencies { kordEx { kordExVersion = "2.2.1-SNAPSHOT" - + kordVersion = "0.16.0-SNAPSHOT" jvmTarget = 21 bot { // See https://docs.kordex.dev/data-collection.html - dataCollection(DataCollection.Standard) + dataCollection(DataCollection.None) mainClass = "dev.jansel.feixiao.AppKt" } diff --git a/src/main/kotlin/dev/jansel/feixiao/App.kt b/src/main/kotlin/dev/jansel/feixiao/App.kt index 32e3ca4..f1ddbde 100644 --- a/src/main/kotlin/dev/jansel/feixiao/App.kt +++ b/src/main/kotlin/dev/jansel/feixiao/App.kt @@ -23,7 +23,6 @@ val logger = KotlinLogging.logger { } suspend fun main() { val bot = ExtensibleBot(token) { database(true) - dataCollectionMode = DataCollection.None extensions { add(::EventHooks) add(::StreamerCommand) diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt index 2a76f6d..246afb1 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt @@ -1,11 +1,14 @@ package dev.jansel.feixiao.extensions import dev.jansel.feixiao.database.collections.StreamerCollection +import dev.jansel.feixiao.database.entities.StreamerData import dev.jansel.feixiao.logger import dev.jansel.feixiao.twitchClient import dev.kord.core.event.gateway.ReadyEvent import dev.kordex.core.extensions.Extension import dev.kordex.core.extensions.event +import org.litote.kmongo.deleteMany +import org.litote.kmongo.eq class EventHooks : Extension() { override val name = "eventhooks" @@ -15,10 +18,15 @@ class EventHooks : Extension() { action { logger.info { "Bot is ready!" } kord.editPresence { listening("the database") } - // check every entry in the database and enable the stream event listener + // check every entry in the database and enable the stream event listener if a server is listening to the streamer StreamerCollection().collection.find().toList().forEach { - twitchClient!!.clientHelper.enableStreamEventListener(it.name) - logger.info { "Enabled stream event listener for ${it.name}" } + if (it.servers.isNotEmpty()) { + twitchClient!!.clientHelper.enableStreamEventListener(it.name) + logger.info { "Enabled stream event listener for ${it.name}" } + } else { + logger.info { "No servers are listening to ${it.name}, deleting from the database..." } + StreamerCollection().collection.deleteMany(StreamerData::name eq it.name) + } } } }