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/README.md b/README.md index cfc9bea..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 @@ -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) 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 d38c329..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 { @@ -110,7 +104,6 @@ object Bot { add(::SendPlannerExtension) add(::MatchExtension) add(::UpdateRolesExtension) - add(::RotationExtension) } this.presence { @@ -165,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/Splatoon3Api.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/Splatoon3Api.kt index 968ce22..b0192e5 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 { - fun getRegularMode(timestamp: Long): ModeData { + private 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") } - fun getOpenMode(timestamp: Long): ModeData { + private 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") } - fun getXMode(timestamp: Long): ModeData { + private 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") } - fun getSeriesMode(timestamp: Long): ModeData { + private 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/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/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt deleted file mode 100644 index 4185fd3..0000000 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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 deleted file mode 100644 index 866c91a..0000000 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/component/SplatoonOnlineMode.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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/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 diff --git a/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt b/src/main/templates/net/moonleay/lilJudd/build/BuildConstants.kt index fa84c6d..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.lilJudd.build +package net.moonleay.liljudd.build internal object BuildConstants { const val version = "${version}"