From 3a4cb20c957032e149d984afa43edaf819919d2a Mon Sep 17 00:00:00 2001 From: moonleay Date: Thu, 19 Oct 2023 16:42:07 +0200 Subject: [PATCH 1/5] chore: progress commit Signed-off-by: moonleay --- src/main/kotlin/net/moonleay/lilJudd/Bot.kt | 1 + .../moonleay/lilJudd/data/api/Splatoon3Api.kt | 8 +- .../lilJudd/extensions/RotationExtension.kt | 80 +++++++++++++++++++ .../component/SplatoonOnlineMode.kt | 30 +++++++ .../moonleay/lilJudd/build/BuildConstants.kt | 2 +- 5 files changed, 116 insertions(+), 5 deletions(-) create mode 100644 src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt create mode 100644 src/main/kotlin/net/moonleay/lilJudd/extensions/component/SplatoonOnlineMode.kt diff --git a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt index 6a5bf7b..d38c329 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt @@ -110,6 +110,7 @@ object Bot { add(::SendPlannerExtension) add(::MatchExtension) add(::UpdateRolesExtension) + add(::RotationExtension) } this.presence { diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3Api.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3Api.kt index b0192e5..968ce22 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3Api.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3Api.kt @@ -22,7 +22,7 @@ import net.moonleay.lilJudd.data.api.entry.schedule.ModeData import net.moonleay.lilJudd.util.TimeUtil object Splatoon3Api { - private fun getRegularMode(timestamp: Long): ModeData { + fun getRegularMode(timestamp: Long): ModeData { Splatoon3ApiCache.cachedRegularModeData.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -33,7 +33,7 @@ object Splatoon3Api { throw Exception("No current mode found") } - private fun getOpenMode(timestamp: Long): ModeData { + fun getOpenMode(timestamp: Long): ModeData { Splatoon3ApiCache.cachedCompetitiveOpenModeData.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -44,7 +44,7 @@ object Splatoon3Api { throw Exception("No current mode found") } - private fun getXMode(timestamp: Long): ModeData { + fun getXMode(timestamp: Long): ModeData { Splatoon3ApiCache.cachedXModeData.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -55,7 +55,7 @@ object Splatoon3Api { throw Exception("No current mode found") } - private fun getSeriesMode(timestamp: Long): ModeData { + fun getSeriesMode(timestamp: Long): ModeData { Splatoon3ApiCache.cachedCompetitiveSeriesModeData.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt new file mode 100644 index 0000000..4185fd3 --- /dev/null +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt @@ -0,0 +1,80 @@ +/* + * lilJudd + * Copyright (C) 2023 moonleay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.moonleay.lilJudd.extensions + +import com.kotlindiscord.kord.extensions.commands.Arguments +import com.kotlindiscord.kord.extensions.commands.application.slash.converters.impl.enumChoice +import com.kotlindiscord.kord.extensions.extensions.Extension +import com.kotlindiscord.kord.extensions.extensions.publicSlashCommand +import net.moonleay.lilJudd.extensions.component.SplatoonOnlineMode +import net.moonleay.lilJudd.util.Logger + +class RotationExtension : Extension() { + + override val name = "rotation" + override val allowApplicationCommandInDMs: Boolean + get() = false + + + override suspend fun setup() { + publicSlashCommand(::RotationArguments) { + name = "rotation" + description = "Check the current rotations" + this.action { + val mode = this.arguments.mode + when (mode) { + SplatoonOnlineMode.ALL -> { + + } + + SplatoonOnlineMode.REGULAR -> { + + } + + SplatoonOnlineMode.SERIES -> { + + } + + SplatoonOnlineMode.OPEN -> { + + } + + SplatoonOnlineMode.X -> { + + } + + SplatoonOnlineMode.SALMON_RUN -> { + + } + } + + Logger.out("Done") + } + } + } + + inner class RotationArguments : Arguments() { + + val mode by enumChoice { + this.name = "mode" + this.description = "The mode you want to check the rotation for" + this.typeName = "en_US" + } + } +} diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/component/SplatoonOnlineMode.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/component/SplatoonOnlineMode.kt new file mode 100644 index 0000000..866c91a --- /dev/null +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/component/SplatoonOnlineMode.kt @@ -0,0 +1,30 @@ +/* + * lilJudd + * Copyright (C) 2023 moonleay + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.moonleay.lilJudd.extensions.component + +import com.kotlindiscord.kord.extensions.commands.application.slash.converters.ChoiceEnum + +enum class SplatoonOnlineMode(override val readableName: String) : ChoiceEnum { + ALL("All Modes"), + REGULAR("Regular Battle"), + SERIES("Ranked Battle (Series)"), + OPEN("Ranked Battle (Open)"), + X("X Battle"), + SALMON_RUN("Salmon Run"), +} diff --git a/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt b/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt index fdcf269..fa84c6d 100644 --- a/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt +++ b/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package net.moonleay.botendo.build +package net.moonleay.lilJudd.build internal object BuildConstants { const val version = "${version}" From 230f62391893258737094f2cb1548110221833cb Mon Sep 17 00:00:00 2001 From: moonleay Date: Thu, 26 Oct 2023 18:53:22 +0200 Subject: [PATCH 2/5] fix!: temp. stopped the StatusUpdater and Cache updater from running to make the bot run again, fixed package names Signed-off-by: moonleay --- .gitignore | 1 + build.gradle.kts | 2 +- src/main/kotlin/net/moonleay/lilJudd/Bot.kt | 18 ++++++++---------- src/main/kotlin/net/moonleay/lilJudd/Main.kt | 3 ++- .../lilJudd/data/api/Splatoon3ApiCache.kt | 2 +- .../lilJudd/extensions/InfoExtension.kt | 2 +- .../moonleay/lilJudd/build/BuildConstants.kt | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index ce11a8e..f970cd0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ run/ +/data/ .gradle build/ diff --git a/build.gradle.kts b/build.gradle.kts index 549c10f..48416b1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,7 +32,7 @@ val ownerID = 372703841151614976L group = "net.moonleay.liljudd" version = System.getenv("CI_COMMIT_TAG")?.let { "$it-${System.getenv("CI_COMMIT_SHORT_SHA")}-prod" } ?: System.getenv("CI_COMMIT_SHORT_SHA")?.let { "$it-dev" } - ?: "2.6.4" + ?: "2.6.5" val kordver = "1.5.9-SNAPSHOT" val coroutinesver = "1.7.3" diff --git a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt index 6a5bf7b..05f7ba8 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt @@ -30,23 +30,17 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch -import net.moonleay.botendo.build.BuildConstants import net.moonleay.lilJudd.buttons.component.EditButtonManager import net.moonleay.lilJudd.data.CredentialManager -import net.moonleay.lilJudd.data.api.Splatoon3ApiCache -import net.moonleay.lilJudd.data.api.type.ApiDataType -import net.moonleay.lilJudd.data.api.type.ApiRequestType import net.moonleay.lilJudd.data.database.DB import net.moonleay.lilJudd.extensions.* import net.moonleay.lilJudd.features.AvailabilityManager import net.moonleay.lilJudd.features.MatchManager import net.moonleay.lilJudd.features.TimeManager -import net.moonleay.lilJudd.jobs.Splatoon3ApiScheduleUpdateScheduler -import net.moonleay.lilJudd.jobs.StatusUpdater -import net.moonleay.lilJudd.jobs.component.JobManager import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.Logger import net.moonleay.lilJudd.util.MessageUtil +import net.moonleay.liljudd.build.BuildConstants import kotlin.system.exitProcess object Bot { @@ -164,17 +158,21 @@ object Bot { AvailabilityManager.runThread() // Update Availabilities MatchManager.update() // Update Matches // Make the bot update the status every 6 seconds - JobManager.addJob(StatusUpdater) + // JobManager.addJob(StatusUpdater) } // Update the Splatoon 3 api data and make sure it stays up-to-date - Splatoon3ApiCache.updateData(ApiDataType.SCHEDULES, ApiRequestType.AUTOMATIC_CACHE_CREATION_AT_STARTUP) - JobManager.addJob(Splatoon3ApiScheduleUpdateScheduler) + // Splatoon3ApiCache.updateData(ApiDataType.SCHEDULES, ApiRequestType.AUTOMATIC_CACHE_CREATION_AT_STARTUP) + // JobManager.addJob(Splatoon3ApiScheduleUpdateScheduler) /* Other caches will be added when implemented its not used yet in order to reduce load on the api, which i am using. */ + // Had to disable bc of an error. + // Will fix when I have time + + //JobManager.addJob(Splatoon3ApiFestivalAndCoopUpdateScheduler) //JobManager.addJob(Splatoon3ApiSplatnetGearUpdateScheduler) diff --git a/src/main/kotlin/net/moonleay/lilJudd/Main.kt b/src/main/kotlin/net/moonleay/lilJudd/Main.kt index 9d00d29..36be8b3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/Main.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/Main.kt @@ -17,7 +17,8 @@ */ package net.moonleay.lilJudd -import net.moonleay.botendo.build.BuildConstants +import net.moonleay.liljudd.build.BuildConstants + suspend fun main() { println( diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3ApiCache.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3ApiCache.kt index 42ff01c..714ff1e 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3ApiCache.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3ApiCache.kt @@ -20,7 +20,6 @@ package net.moonleay.lilJudd.data.api import io.ktor.http.* import kotlinx.serialization.json.* -import net.moonleay.botendo.build.BuildConstants import net.moonleay.lilJudd.data.api.entry.coop.CoopGearData import net.moonleay.lilJudd.data.api.entry.schedule.* import net.moonleay.lilJudd.data.api.entry.splatfest.SplatfestColor @@ -34,6 +33,7 @@ import net.moonleay.lilJudd.data.api.type.ApiDataType import net.moonleay.lilJudd.data.api.type.ApiRequestType import net.moonleay.lilJudd.util.Logger import net.moonleay.lilJudd.util.NetUtil +import net.moonleay.liljudd.build.BuildConstants object Splatoon3ApiCache { private val user_agent = diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt index ff5a61a..6445faf 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt @@ -20,9 +20,9 @@ package net.moonleay.lilJudd.extensions import com.kotlindiscord.kord.extensions.extensions.Extension import com.kotlindiscord.kord.extensions.extensions.publicSlashCommand -import net.moonleay.botendo.build.BuildConstants import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.MessageUtil +import net.moonleay.liljudd.build.BuildConstants class InfoExtension : Extension() { override val name = "info" diff --git a/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt b/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt index fdcf269..d75d861 100644 --- a/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt +++ b/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package net.moonleay.botendo.build +package net.moonleay.liljudd.build internal object BuildConstants { const val version = "${version}" From 3c4a7d9a157c849376bdb1772961f7a4bb15e86b Mon Sep 17 00:00:00 2001 From: moonleay Date: Wed, 6 Dec 2023 16:02:32 +0100 Subject: [PATCH 3/5] chore: update README.md Signed-off-by: moonleay --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cfc9bea..42c3d06 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ More information can be found on the [Homepage](https://moonleay.net/projects/li ## Known issues -##### If you encounter any bugs, message me on Discord (@moonleay) or send me a mail (issues@moonleay.net). +##### If you encounter any bugs, message me on Discord (@moonleay) or send me a mail (issues@moonleay.net). You can also open a ticket [on the support server](https://discord.gg/HTZRktfH4A). ## Commands & Features @@ -29,11 +29,7 @@ More information can be found on the [Homepage](https://moonleay.net/projects/li ## (Maybe) upcoming features -- Match Planner (Send Notifications some time before a match starts) -- Game Tracker (Save the results of the last matches) -- Replay Saver (Maybe; will save the replay code to a database) -- Rndm map command -- Maybe a DSB / DSL API +##### See the [todo list](https://todo.moonleay.net/share/OmisuzgPDdsrCAXKjGrTfYzWwqNDNclOMGJWeMsi/auth?view=kanban) for more information. ## How to self-host (using the Docker container) From 10c5f80ae3c6110d8eb50eacca3f07eac019c6b9 Mon Sep 17 00:00:00 2001 From: moonleay Date: Wed, 6 Dec 2023 16:03:41 +0100 Subject: [PATCH 4/5] chore: update README.md Signed-off-by: moonleay --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 42c3d06..6d87924 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A Discord Bot for Splatoon Teams. -More information can be found on the [Homepage](https://moonleay.net/projects/liljudd/). +More information can be found on the [Homepage](https://liljudd.ink). ## Contributors From 373eb1580571add6c7f9d5103974eb2e6126227b Mon Sep 17 00:00:00 2001 From: cookieso Date: Wed, 6 Dec 2023 18:12:41 +0100 Subject: [PATCH 5/5] fix: off-by-one error in EmbedUtil --- src/main/kotlin/net/moonleay/lilJudd/util/EmbedUtil.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/net/moonleay/lilJudd/util/EmbedUtil.kt b/src/main/kotlin/net/moonleay/lilJudd/util/EmbedUtil.kt index e9dbbaf..17615b3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/util/EmbedUtil.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/util/EmbedUtil.kt @@ -82,7 +82,7 @@ object EmbedUtil { fun getAllUsersInTheFirstXTables(amountOfTables: Int, e: Embed): List { val users = mutableListOf() - for (i in 0 until amountOfTables - 1) { + for (i in 0 until amountOfTables) { val f = e.fields[i] if (!f.value.contains("@")) continue // check next one. this one does not have any entries