From 4a313832fa6b9b9632dc813dbf49edab1e8b80bf Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Fri, 22 Nov 2024 21:41:21 +0100 Subject: [PATCH 01/25] add category to live message without role ping --- src/main/kotlin/dev/jansel/feixiao/App.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/App.kt b/src/main/kotlin/dev/jansel/feixiao/App.kt index f97e1dd..32e3ca4 100644 --- a/src/main/kotlin/dev/jansel/feixiao/App.kt +++ b/src/main/kotlin/dev/jansel/feixiao/App.kt @@ -45,7 +45,7 @@ suspend fun main() { if (role != null) { channel?.createMessage("<@&$role> https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") } else { - channel?.createMessage("${it.channel.name} went live: ${it.stream.title}") + channel?.createMessage("https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") } } } From 978b0fd65bc5970ee0f5fb0b269de2e932b845fe Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sat, 23 Nov 2024 23:52:24 +0100 Subject: [PATCH 02/25] start feature --- .../feixiao/database/collections/StreamerCollection.kt | 10 +++++----- .../jansel/feixiao/database/entities/StreamerData.kt | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt index 8df3691..8304211 100644 --- a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt +++ b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt @@ -20,26 +20,26 @@ class StreamerCollection : KordExKoinComponent { suspend fun getData(channelName: String): StreamerData? = collection.findOne(StreamerData::name eq channelName) - suspend fun updateData(guildId: Snowflake, channelId: Snowflake, streamerName: String, roleId: Snowflake?) { + suspend fun updateData(guildId: Snowflake, channelId: Snowflake, streamerName: String, roleId: Snowflake?, liveMessage: String?) { val coll = collection.findOne(StreamerData::name eq streamerName) if (coll != null) { collection.updateOne( StreamerData::name eq streamerName, - setValue(StreamerData::servers, coll.servers + listOf(Server(guildId, channelId, roleId))) + setValue(StreamerData::servers, coll.servers + listOf(Server(guildId, channelId, roleId, liveMessage))) ) } else { collection.insertOne( - StreamerData(streamerName, listOf(Server(guildId, channelId, roleId))) + StreamerData(streamerName, listOf(Server(guildId, channelId, roleId, liveMessage))) ) } } - suspend fun removeData(guildId: Snowflake, channelId: Snowflake, streamerName: String, roleId: Snowflake?) { + suspend fun removeData(guildId: Snowflake, channelId: Snowflake, streamerName: String, roleId: Snowflake?, liveMessage: String?) { val coll = collection.findOne(StreamerData::name eq streamerName) if (coll != null) { collection.updateOne( StreamerData::name eq streamerName, - setValue(StreamerData::servers, coll.servers - Server(guildId, channelId, roleId)) + setValue(StreamerData::servers, coll.servers - Server(guildId, channelId, roleId, liveMessage)) ) } } diff --git a/src/main/kotlin/dev/jansel/feixiao/database/entities/StreamerData.kt b/src/main/kotlin/dev/jansel/feixiao/database/entities/StreamerData.kt index 66de7f2..3425532 100644 --- a/src/main/kotlin/dev/jansel/feixiao/database/entities/StreamerData.kt +++ b/src/main/kotlin/dev/jansel/feixiao/database/entities/StreamerData.kt @@ -13,5 +13,6 @@ data class StreamerData( data class Server( val guildId: Snowflake, val channelId: Snowflake, - val roleId: Snowflake? + val roleId: Snowflake?, + val liveMessage: String? ) From 847e46c8ee9d6dcb6ed9715d195986079e25437e Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sat, 23 Nov 2024 23:53:16 +0100 Subject: [PATCH 03/25] actually delete the collection if its empty --- .../jansel/feixiao/database/collections/StreamerCollection.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt index 8df3691..549159d 100644 --- a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt +++ b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt @@ -41,6 +41,9 @@ class StreamerCollection : KordExKoinComponent { StreamerData::name eq streamerName, setValue(StreamerData::servers, coll.servers - Server(guildId, channelId, roleId)) ) + if (coll.servers.isEmpty()) { + collection.deleteOne(StreamerData::name eq streamerName) + } } } } From d263cf39b99022864bd2d0a1be4c269cf7e913ac Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 00:14:33 +0100 Subject: [PATCH 04/25] manually define kord version bc build broke somehow, also set the datacollection during build arleady --- build.gradle.kts | 4 ++-- src/main/kotlin/dev/jansel/feixiao/App.kt | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) 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) From 016c9688c8a9973cec4a56dc883a334fc2310e73 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 02:34:00 +0100 Subject: [PATCH 05/25] pls let this work thanks --- .../database/collections/StreamerCollection.kt | 3 --- .../dev/jansel/feixiao/extensions/EventHooks.kt | 14 +++++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt index 549159d..8df3691 100644 --- a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt +++ b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt @@ -41,9 +41,6 @@ class StreamerCollection : KordExKoinComponent { StreamerData::name eq streamerName, setValue(StreamerData::servers, coll.servers - Server(guildId, channelId, roleId)) ) - if (coll.servers.isEmpty()) { - collection.deleteOne(StreamerData::name eq streamerName) - } } } } 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) + } } } } From 0366cbbbd890c9002fab8741bad41cac755121eb Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 03:07:53 +0100 Subject: [PATCH 06/25] this should now work even better --- src/main/kotlin/dev/jansel/feixiao/App.kt | 34 +++++++++++++++---- .../feixiao/extensions/StreamerCommand.kt | 8 +++-- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/App.kt b/src/main/kotlin/dev/jansel/feixiao/App.kt index f1ddbde..e6fb71c 100644 --- a/src/main/kotlin/dev/jansel/feixiao/App.kt +++ b/src/main/kotlin/dev/jansel/feixiao/App.kt @@ -12,7 +12,6 @@ import dev.jansel.feixiao.extensions.StreamerCommand import dev.jansel.feixiao.utils.* import dev.kord.core.entity.channel.GuildMessageChannel import dev.kordex.core.ExtensibleBot -import dev.kordex.data.api.DataCollection import io.github.oshai.kotlinlogging.KotlinLogging import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking @@ -39,12 +38,33 @@ suspend fun main() { runBlocking { launch { val streamer = StreamerCollection().getData(it.channel.name) - val channel = bot.kordRef.getChannelOf(streamer!!.servers.first().channelId) - val role = streamer.servers.first().roleId - if (role != null) { - channel?.createMessage("<@&$role> https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") - } else { - channel?.createMessage("https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") + for (server in streamer!!.servers) { + val channel = bot.kordRef.getChannelOf(server.channelId) + val role = server.roleId + val livemessage = server.liveMessage + + if (role != null) { + if (livemessage != null) { + channel?.createMessage(livemessage + .replace("{name}", it.channel.name) + .replace("{category}", it.stream.gameName) + .replace("{title}", it.stream.title) + .replace("{url}", "https://twitch.tv/${it.channel.name}") + .replace("{role}", "<@&$role>")) + } else { + channel?.createMessage("<@&$role> https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") + } + } else { + if (livemessage != null) { + channel?.createMessage(livemessage + .replace("{name}", it.channel.name) + .replace("{category}", it.stream.gameName) + .replace("{title}", it.stream.title) + .replace("{url}", "https://twitch.tv/${it.channel.name}")) + } else { + channel?.createMessage("https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") + } + } } } } diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt index a2522a4..048c96c 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt @@ -29,7 +29,7 @@ class StreamerCommand : Extension() { } action { val streamer = arguments.streamer - StreamerCollection().updateData(guild!!.id, arguments.channel.id, streamer, arguments.role?.id) + StreamerCollection().updateData(guild!!.id, arguments.channel.id, streamer, arguments.role?.id, arguments.message) twitchClient!!.clientHelper.enableStreamEventListener(streamer) respond { content = "Added streamer $streamer" @@ -46,7 +46,7 @@ class StreamerCommand : Extension() { } action { val streamer = arguments.streamer - StreamerCollection().removeData(guild!!.id, channel.id, streamer, null) + StreamerCollection().removeData(guild!!.id, channel.id, streamer, null, null) respond { content = "Removed streamer $streamer" } @@ -70,6 +70,10 @@ class StreamerCommand : Extension() { name = "role" description = "Role to ping when the streamer goes live" } + val message by string { + name = "message" + description = "Message to send when the streamer goes live. Possible placeholders: {url}, {name}, {title}, {category}, {role} (if set)" + } } inner class RemoveStreamerArgs : Arguments() { From 1157eb50de803af207a65ee57f69e08cebe7e4bd Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 03:24:01 +0100 Subject: [PATCH 07/25] use a cooler event handler for events (async) --- build.gradle.kts | 1 + gradle/libs.versions.toml | 2 +- src/main/kotlin/dev/jansel/feixiao/App.kt | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index ff252cd..f795a72 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,6 +20,7 @@ dependencies { implementation(libs.kx.ser) implementation(libs.kx.coroutines) implementation(libs.twitch4j) + implementation(libs.events4j) implementation(libs.kmongo) // Logging dependencies diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ce4033d..76665e0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,5 +22,5 @@ logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } logback-groovy = { module = "io.github.virtualdogbert:logback-groovy-config", version.ref = "logback-groovy" } logging = { module = "io.github.oshai:kotlin-logging", version.ref = "logging" } twitch4j = { module = "com.github.twitch4j:twitch4j", version.ref = "twitch4j" } -events4j = { module = "com.github.philippheuer.events4j:events4j-handler-simple", version.ref = "events4j" } +events4j = { module = "com.github.philippheuer.events4j:events4j-handler-reactor", version.ref = "events4j" } kmongo = { module="org.litote.kmongo:kmongo-coroutine-serialization", version.ref = "kmongo"} diff --git a/src/main/kotlin/dev/jansel/feixiao/App.kt b/src/main/kotlin/dev/jansel/feixiao/App.kt index e6fb71c..9f70fcc 100644 --- a/src/main/kotlin/dev/jansel/feixiao/App.kt +++ b/src/main/kotlin/dev/jansel/feixiao/App.kt @@ -3,6 +3,7 @@ */ package dev.jansel.feixiao +import com.github.philippheuer.events4j.reactor.ReactorEventHandler import com.github.twitch4j.TwitchClient import com.github.twitch4j.TwitchClientBuilder import com.github.twitch4j.events.ChannelGoLiveEvent @@ -31,6 +32,7 @@ suspend fun main() { .withEnableHelix(true) .withClientId(twitchcid) .withClientSecret(twitchcs) + .withDefaultEventHandler(ReactorEventHandler::class.java) .build() twitchClient!!.eventManager.onEvent(ChannelGoLiveEvent::class.java) { From 9f53f67843c7ff10e5aa28dbff849d2998fa1bb0 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 03:26:55 +0100 Subject: [PATCH 08/25] whoops should have thought of that one --- .../kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt index 048c96c..9633224 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt @@ -72,7 +72,7 @@ class StreamerCommand : Extension() { } val message by string { name = "message" - description = "Message to send when the streamer goes live. Possible placeholders: {url}, {name}, {title}, {category}, {role} (if set)" + description = "Message to send when the streamer goes live. Possible placeholders (put in curly braces!!): url, name, title, category, role (if set)" } } From dc0b8e7ae02a8386928367de10cef80dcdad9e20 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 03:27:12 +0100 Subject: [PATCH 09/25] and this one --- .../kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt index 9633224..d02daf0 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt @@ -9,6 +9,7 @@ import dev.kordex.core.commands.Arguments import dev.kordex.core.commands.application.slash.publicSubCommand import dev.kordex.core.commands.converters.impl.channel import dev.kordex.core.commands.converters.impl.optionalRole +import dev.kordex.core.commands.converters.impl.optionalString import dev.kordex.core.commands.converters.impl.string import dev.kordex.core.extensions.Extension import dev.kordex.core.extensions.publicSlashCommand @@ -70,7 +71,7 @@ class StreamerCommand : Extension() { name = "role" description = "Role to ping when the streamer goes live" } - val message by string { + val message by optionalString { name = "message" description = "Message to send when the streamer goes live. Possible placeholders (put in curly braces!!): url, name, title, category, role (if set)" } From e36e5a258667f99db712ba392aced8eda100eb88 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Sun, 24 Nov 2024 03:33:20 +0100 Subject: [PATCH 10/25] shorten text --- .../kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt index d02daf0..3f7f66e 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt @@ -73,7 +73,7 @@ class StreamerCommand : Extension() { } val message by optionalString { name = "message" - description = "Message to send when the streamer goes live. Possible placeholders (put in curly braces!!): url, name, title, category, role (if set)" + description = "Possible placeholders (put in curly braces!!): url, name, title, category, role (if set)" } } From 84086034760d11fe8ad8e816646e55f7f79e2f01 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Mon, 25 Nov 2024 03:32:56 +0100 Subject: [PATCH 11/25] print online message in a seperate text channel --- .idea/Feixiao.iml | 9 +++++++++ .idea/compiler.xml | 2 +- .idea/misc.xml | 2 +- .idea/modules.xml | 8 ++++++++ .idea/modules/feixiao.iml | 8 ++++++++ .../kotlin/dev/jansel/feixiao/extensions/EventHooks.kt | 7 +++++++ 6 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 .idea/Feixiao.iml create mode 100644 .idea/modules.xml create mode 100644 .idea/modules/feixiao.iml diff --git a/.idea/Feixiao.iml b/.idea/Feixiao.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/Feixiao.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index ed2ab47..f4f3637 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,7 +1,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index c6d38c5..a4abeb1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..4787ae5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/feixiao.iml b/.idea/modules/feixiao.iml new file mode 100644 index 0000000..4ad6139 --- /dev/null +++ b/.idea/modules/feixiao.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt index 246afb1..24b7641 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt @@ -4,6 +4,10 @@ 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.jansel.feixiao.utils.tchannelid +import dev.jansel.feixiao.utils.tserverid +import dev.kord.core.behavior.getChannelOf +import dev.kord.core.entity.channel.GuildMessageChannel import dev.kord.core.event.gateway.ReadyEvent import dev.kordex.core.extensions.Extension import dev.kordex.core.extensions.event @@ -17,6 +21,9 @@ class EventHooks : Extension() { event { action { logger.info { "Bot is ready!" } + val onlineLog = + kord.getGuildOrNull(tserverid)?.getChannelOf(tchannelid) + onlineLog?.createMessage("Bot Online!") kord.editPresence { listening("the database") } // 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 { From 1800f44941ca08d922abb722aa5a08be2a934e3f Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Wed, 27 Nov 2024 23:13:31 +0100 Subject: [PATCH 12/25] work on the translation stuff in kordex that is required as of version 2.3 --- .idea/kotlinc.xml | 2 +- build.gradle.kts | 10 ++++-- gradle/libs.versions.toml | 2 +- settings.gradle.kts | 16 ++++++--- src/main/kotlin/dev/jansel/feixiao/App.kt | 4 +++ .../feixiao/extensions/StreamerCommand.kt | 33 ++++++++++--------- .../translations/feixiao/strings.properties | 16 +++++++++ 7 files changed, 57 insertions(+), 26 deletions(-) create mode 100644 src/main/resources/translations/feixiao/strings.properties diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index d4b7acc..c224ad5 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index f795a72..802ad4c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,8 +32,7 @@ dependencies { } kordEx { - kordExVersion = "2.2.1-SNAPSHOT" - kordVersion = "0.16.0-SNAPSHOT" + kordExVersion = "2.3.1-SNAPSHOT" jvmTarget = 21 bot { @@ -42,6 +41,11 @@ kordEx { mainClass = "dev.jansel.feixiao.AppKt" } + + i18n { + classPackage = "dev.jansel.feixiao.i18n" + translationBundle = "feixiao.strings" + } } // Automatically generate a Dockerfile. Set `generateOnBuild` to `false` if you'd prefer to manually run the @@ -85,6 +89,6 @@ docker { } tasks.wrapper { - gradleVersion = "8.10.2" + gradleVersion = "8.11.1" distributionType = Wrapper.DistributionType.BIN } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 76665e0..9329a3e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "2.0.20" # Note: Plugin versions must be updated in the settings.gradle.kts too +kotlin = "2.0.21" # Note: Plugin versions must be updated in the settings.gradle.kts too groovy = "3.0.22" jansi = "2.4.1" diff --git a/settings.gradle.kts b/settings.gradle.kts index 3e1187a..bc1be29 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,14 +1,20 @@ pluginManagement { plugins { // Update this in libs.version.toml when you change it here. - kotlin("jvm") version "2.0.20" - kotlin("plugin.serialization") version "2.0.20" + kotlin("jvm") version "2.0.21" + kotlin("plugin.serialization") version "2.0.21" - id("com.github.jakemarsden.git-hooks") version "0.0.2" id("com.github.johnrengelman.shadow") version "8.1.1" - id("dev.kordex.gradle.docker") version "1.4.2" - id("dev.kordex.gradle.kordex") version "1.4.2" + id("dev.kordex.gradle.docker") version "1.5.8" + id("dev.kordex.gradle.kordex") version "1.5.8" + } + repositories { + gradlePluginPortal() + mavenCentral() + + maven("https://snapshots-repo.kordex.dev") + maven("https://releases-repo.kordex.dev") } } diff --git a/src/main/kotlin/dev/jansel/feixiao/App.kt b/src/main/kotlin/dev/jansel/feixiao/App.kt index 9f70fcc..85a790f 100644 --- a/src/main/kotlin/dev/jansel/feixiao/App.kt +++ b/src/main/kotlin/dev/jansel/feixiao/App.kt @@ -13,6 +13,7 @@ import dev.jansel.feixiao.extensions.StreamerCommand import dev.jansel.feixiao.utils.* import dev.kord.core.entity.channel.GuildMessageChannel import dev.kordex.core.ExtensibleBot +import dev.kordex.core.i18n.SupportedLocales import io.github.oshai.kotlinlogging.KotlinLogging import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking @@ -27,6 +28,9 @@ suspend fun main() { add(::EventHooks) add(::StreamerCommand) } + i18n { + applicationCommandLocale(SupportedLocales.ENGLISH, SupportedLocales.GERMAN) + } } twitchClient = TwitchClientBuilder.builder() .withEnableHelix(true) diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt index 3f7f66e..53bfedd 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt @@ -1,6 +1,7 @@ package dev.jansel.feixiao.extensions import dev.jansel.feixiao.database.collections.StreamerCollection +import dev.jansel.feixiao.i18n.Translations import dev.jansel.feixiao.twitchClient import dev.kord.common.entity.Permission import dev.kordex.core.checks.anyGuild @@ -18,12 +19,12 @@ class StreamerCommand : Extension() { override val name = "streaming" override suspend fun setup() { publicSlashCommand { - name = "streamer" - description = "Streamer commands" + name = Translations.Streamer.Command.name + description = Translations.Streamer.Command.description publicSubCommand(::AddStreamerArgs) { - name = "add" - description = "Add a streamer to the listener of this server" + name = Translations.Streamer.Command.Add.name + description = Translations.Streamer.Command.Add.description check { anyGuild() hasPermission(Permission.ManageGuild) @@ -39,8 +40,8 @@ class StreamerCommand : Extension() { } publicSubCommand(::RemoveStreamerArgs) { - name = "remove" - description = "Remove a streamer from the listener of this server" + name = Translations.Streamer.Command.Remove.name + description = Translations.Streamer.Command.Remove.description check { anyGuild() hasPermission(Permission.ManageGuild) @@ -58,29 +59,29 @@ class StreamerCommand : Extension() { inner class AddStreamerArgs : Arguments() { val streamer by string { - name = "streamer" - description = "The streamer to add" + name = Translations.Streamer.Command.Arguments.Add.Streamer.name + description = Translations.Streamer.Command.Arguments.Add.Streamer.description require(true) } val channel by channel { - name = "announcechannel" - description = "Channel where the bot will send a message when the streamer goes live" + name = Translations.Streamer.Command.Arguments.Add.Channel.name + description = Translations.Streamer.Command.Arguments.Add.Channel.description require(true) } val role by optionalRole { - name = "role" - description = "Role to ping when the streamer goes live" + name = Translations.Streamer.Command.Arguments.Add.Role.name + description = Translations.Streamer.Command.Arguments.Add.Role.description } val message by optionalString { - name = "message" - description = "Possible placeholders (put in curly braces!!): url, name, title, category, role (if set)" + name = Translations.Streamer.Command.Arguments.Add.Message.name + description = Translations.Streamer.Command.Arguments.Add.Message.description } } inner class RemoveStreamerArgs : Arguments() { val streamer by string { - name = "streamer" - description = "The streamer to remove" + name = Translations.Streamer.Command.Arguments.Remove.name + description = Translations.Streamer.Command.Arguments.Remove.description require(true) } } diff --git a/src/main/resources/translations/feixiao/strings.properties b/src/main/resources/translations/feixiao/strings.properties new file mode 100644 index 0000000..266c513 --- /dev/null +++ b/src/main/resources/translations/feixiao/strings.properties @@ -0,0 +1,16 @@ +streamer.command.name=streamer +streamer.command.description=A bundle of Streamer commands +streamer.command.add.name=add +streamer.command.add.description=Add a new streamer to the listener +streamer.command.remove.name=remove +streamer.command.remove.description=Remove a streamer from the listener +streamer.command.arguments.add.streamer.name=streamer +streamer.command.arguments.add.streamer.description=The streamer to add +streamer.command.arguments.add.channel.name=channel +streamer.command.arguments.add.channel.description=The channel to add the streamer to +streamer.command.arguments.add.role.name=role +streamer.command.arguments.add.role.description=The role to assign to the streamer +streamer.command.arguments.add.message.name=message +streamer.command.arguments.add.message.description=Custom Announce message. Placeholders (in curly braces): url, name, title, category, role (if set) +streamer.command.arguments.remove.name=streamer +streamer.command.arguments.remove.description=The streamer to remove From fce192d295057f5739777bc0b67cf7b9c9f06788 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Wed, 27 Nov 2024 23:36:45 +0100 Subject: [PATCH 13/25] add comment to the streamer command to be able to differentiate it better later --- src/main/resources/translations/feixiao/strings.properties | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/resources/translations/feixiao/strings.properties b/src/main/resources/translations/feixiao/strings.properties index 266c513..95535d7 100644 --- a/src/main/resources/translations/feixiao/strings.properties +++ b/src/main/resources/translations/feixiao/strings.properties @@ -1,3 +1,5 @@ +# Streamer Command + streamer.command.name=streamer streamer.command.description=A bundle of Streamer commands streamer.command.add.name=add @@ -14,3 +16,5 @@ streamer.command.arguments.add.message.name=message streamer.command.arguments.add.message.description=Custom Announce message. Placeholders (in curly braces): url, name, title, category, role (if set) streamer.command.arguments.remove.name=streamer streamer.command.arguments.remove.description=The streamer to remove + +# more to come... From 20da6a5dda9f7dab5d9cd65bb0a3fa4f6d472f9e Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Wed, 27 Nov 2024 23:38:04 +0100 Subject: [PATCH 14/25] reformat code and optimize imports (IntelliJ internal function) --- src/main/kotlin/dev/jansel/feixiao/App.kt | 33 +++++++++++-------- .../collections/StreamerCollection.kt | 16 +++++++-- .../jansel/feixiao/extensions/EventHooks.kt | 1 - .../feixiao/extensions/StreamerCommand.kt | 8 ++++- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/main/kotlin/dev/jansel/feixiao/App.kt b/src/main/kotlin/dev/jansel/feixiao/App.kt index 85a790f..299c7a5 100644 --- a/src/main/kotlin/dev/jansel/feixiao/App.kt +++ b/src/main/kotlin/dev/jansel/feixiao/App.kt @@ -10,7 +10,10 @@ import com.github.twitch4j.events.ChannelGoLiveEvent import dev.jansel.feixiao.database.collections.StreamerCollection import dev.jansel.feixiao.extensions.EventHooks import dev.jansel.feixiao.extensions.StreamerCommand -import dev.jansel.feixiao.utils.* +import dev.jansel.feixiao.utils.database +import dev.jansel.feixiao.utils.token +import dev.jansel.feixiao.utils.twitchcid +import dev.jansel.feixiao.utils.twitchcs import dev.kord.core.entity.channel.GuildMessageChannel import dev.kordex.core.ExtensibleBot import dev.kordex.core.i18n.SupportedLocales @@ -19,7 +22,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking var twitchClient: TwitchClient? = null -val logger = KotlinLogging.logger { } +val logger = KotlinLogging.logger { } suspend fun main() { val bot = ExtensibleBot(token) { @@ -51,22 +54,26 @@ suspend fun main() { if (role != null) { if (livemessage != null) { - channel?.createMessage(livemessage - .replace("{name}", it.channel.name) - .replace("{category}", it.stream.gameName) - .replace("{title}", it.stream.title) - .replace("{url}", "https://twitch.tv/${it.channel.name}") - .replace("{role}", "<@&$role>")) + channel?.createMessage( + livemessage + .replace("{name}", it.channel.name) + .replace("{category}", it.stream.gameName) + .replace("{title}", it.stream.title) + .replace("{url}", "https://twitch.tv/${it.channel.name}") + .replace("{role}", "<@&$role>") + ) } else { channel?.createMessage("<@&$role> https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") } } else { if (livemessage != null) { - channel?.createMessage(livemessage - .replace("{name}", it.channel.name) - .replace("{category}", it.stream.gameName) - .replace("{title}", it.stream.title) - .replace("{url}", "https://twitch.tv/${it.channel.name}")) + channel?.createMessage( + livemessage + .replace("{name}", it.channel.name) + .replace("{category}", it.stream.gameName) + .replace("{title}", it.stream.title) + .replace("{url}", "https://twitch.tv/${it.channel.name}") + ) } else { channel?.createMessage("https://twitch.tv/${it.channel.name} went live streaming ${it.stream.gameName}: ${it.stream.title}") } diff --git a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt index 8304211..651df09 100644 --- a/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt +++ b/src/main/kotlin/dev/jansel/feixiao/database/collections/StreamerCollection.kt @@ -20,7 +20,13 @@ class StreamerCollection : KordExKoinComponent { suspend fun getData(channelName: String): StreamerData? = collection.findOne(StreamerData::name eq channelName) - suspend fun updateData(guildId: Snowflake, channelId: Snowflake, streamerName: String, roleId: Snowflake?, liveMessage: String?) { + suspend fun updateData( + guildId: Snowflake, + channelId: Snowflake, + streamerName: String, + roleId: Snowflake?, + liveMessage: String? + ) { val coll = collection.findOne(StreamerData::name eq streamerName) if (coll != null) { collection.updateOne( @@ -34,7 +40,13 @@ class StreamerCollection : KordExKoinComponent { } } - suspend fun removeData(guildId: Snowflake, channelId: Snowflake, streamerName: String, roleId: Snowflake?, liveMessage: String?) { + suspend fun removeData( + guildId: Snowflake, + channelId: Snowflake, + streamerName: String, + roleId: Snowflake?, + liveMessage: String? + ) { val coll = collection.findOne(StreamerData::name eq streamerName) if (coll != null) { collection.updateOne( diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt index 246afb1..0a49bd4 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/EventHooks.kt @@ -7,7 +7,6 @@ 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() { diff --git a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt index 53bfedd..efafbac 100644 --- a/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt +++ b/src/main/kotlin/dev/jansel/feixiao/extensions/StreamerCommand.kt @@ -31,7 +31,13 @@ class StreamerCommand : Extension() { } action { val streamer = arguments.streamer - StreamerCollection().updateData(guild!!.id, arguments.channel.id, streamer, arguments.role?.id, arguments.message) + StreamerCollection().updateData( + guild!!.id, + arguments.channel.id, + streamer, + arguments.role?.id, + arguments.message + ) twitchClient!!.clientHelper.enableStreamEventListener(streamer) respond { content = "Added streamer $streamer" From 2dd0211353275b670313caed48b59fe0f76395e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 02:41:13 +0000 Subject: [PATCH 15/25] Add renovate.json --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..2b42fb1 --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} From 7ef5f34ee67e81243fc329fd6de3a6905089ac43 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Thu, 28 Nov 2024 03:50:56 +0100 Subject: [PATCH 16/25] Update and rename renovate.json to .github/renovate.json --- renovate.json => .github/renovate.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename renovate.json => .github/renovate.json (59%) diff --git a/renovate.json b/.github/renovate.json similarity index 59% rename from renovate.json rename to .github/renovate.json index 2b42fb1..6bda63c 100644 --- a/renovate.json +++ b/.github/renovate.json @@ -2,5 +2,7 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended" - ] + ], + "commitBody": "[skip ci]", + "baseBranches": ["refactor/depUpdates"] } From 2d5fa8708b1926fe5532edf81d1e50a279af8fb7 Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Thu, 28 Nov 2024 03:56:56 +0100 Subject: [PATCH 17/25] Update renovate.json [skip ci] --- .github/renovate.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/renovate.json b/.github/renovate.json index 6bda63c..ba1d693 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -4,5 +4,12 @@ "config:recommended" ], "commitBody": "[skip ci]", - "baseBranches": ["refactor/depUpdates"] + "baseBranches": ["refactor/depUpdates"], + "prHourlyLimit": 0, + "packageRules": [ + { + "matchUpdateTypes": ["patch", "pin", "digest"], + "automerge": true + } + ] } From 9b6c2455c5f4047b928be5b6d68a5aecb935a9b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 02:58:49 +0000 Subject: [PATCH 18/25] Update dependency com.github.twitch4j:twitch4j to v1.23.0 [skip ci] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9329a3e..2e3de5f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ kx-ser = "1.7.3" logback = "1.5.12" logback-groovy = "1.14.5" logging = "7.0.0" -twitch4j = "1.22.0" +twitch4j = "1.23.0" events4j = "0.12.2" kx-coroutines = "1.9.0" kmongo = "4.9.0" From 9b0a21131ec4e9a12ca4995a8c890ceb47631d03 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:00:35 +0000 Subject: [PATCH 19/25] Update dependency gradle to v8.11.1 [skip ci] --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index df97d72..e2847c8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 352591ac1ae056e2d39c99749f95c81b92f55238 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:00:48 +0000 Subject: [PATCH 20/25] Update actions/upload-artifact action to v4 [skip ci] --- .github/workflows/ci.yml | 2 +- .github/workflows/develop.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b2d159..d7a094d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: run: "./gradlew build" - name: Upload build artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: Build and Deploy Artifacts diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index f2c1dbc..eb0ab25 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -26,7 +26,7 @@ jobs: run: "./gradlew build" - name: Upload build artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: Build and Deploy Artifacts From 7736b99eea7c6777de913907d8b92ba7a7277b39 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:00:51 +0000 Subject: [PATCH 21/25] Update dependency org.litote.kmongo:kmongo-coroutine-serialization to v5 [skip ci] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9329a3e..f0935c2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ logging = "7.0.0" twitch4j = "1.22.0" events4j = "0.12.2" kx-coroutines = "1.9.0" -kmongo = "4.9.0" +kmongo = "5.1.0" [libraries] groovy = { module = "org.codehaus.groovy:groovy", version.ref = "groovy" } From 2243329faeb58df1f1a568b31ded4dc5f747fc27 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:00:54 +0000 Subject: [PATCH 22/25] Update docker/build-push-action action to v6 [skip ci] --- .github/workflows/root.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/root.yml b/.github/workflows/root.yml index 9943979..92fc109 100644 --- a/.github/workflows/root.yml +++ b/.github/workflows/root.yml @@ -39,7 +39,7 @@ jobs: password: ${{ secrets.CR_PAT }} - name: Build and push - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v6 with: context: . platforms: linux/arm64 From 6f0276fc95cefdb914b9be3618037a60b5aa2edd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:00:57 +0000 Subject: [PATCH 23/25] Update docker/login-action action to v3 [skip ci] --- .github/workflows/root.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/root.yml b/.github/workflows/root.yml index 9943979..d1c9341 100644 --- a/.github/workflows/root.yml +++ b/.github/workflows/root.yml @@ -31,7 +31,7 @@ jobs: run: "./gradlew build" - name: Login to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io From e283d68edb01b7b6e9abf15d3406643569e85df2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 Nov 2024 03:02:52 +0000 Subject: [PATCH 24/25] Update dependency org.codehaus.groovy:groovy to v3.0.23 [skip ci] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2e3de5f..349681e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] kotlin = "2.0.21" # Note: Plugin versions must be updated in the settings.gradle.kts too -groovy = "3.0.22" +groovy = "3.0.23" jansi = "2.4.1" kx-ser = "1.7.3" logback = "1.5.12" From f5270e3eb70fe8c816c4ef6542cbf6f56e4fbe6c Mon Sep 17 00:00:00 2001 From: Jannik Reimers Date: Thu, 28 Nov 2024 04:26:40 +0100 Subject: [PATCH 25/25] revert gradle version to 8.10.2 --- build.gradle.kts | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 802ad4c..e53343b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -89,6 +89,6 @@ docker { } tasks.wrapper { - gradleVersion = "8.11.1" + gradleVersion = "8.10.2" distributionType = Wrapper.DistributionType.BIN } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e2847c8..df97d72 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle.kts b/settings.gradle.kts index bc1be29..fc0b921 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,8 +13,8 @@ pluginManagement { gradlePluginPortal() mavenCentral() - maven("https://snapshots-repo.kordex.dev") maven("https://releases-repo.kordex.dev") + maven("https://snapshots-repo.kordex.dev") } }