diff --git a/build.gradle.kts b/build.gradle.kts index 2da3144..5b2caaa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,7 +33,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.7.0" + ?: "2.6.8" val kordver = "1.7.1-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 4196213..8282212 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt @@ -113,7 +113,6 @@ object Bot { add(::SendPlannerExtension) add(::MatchExtension) add(::UpdateRolesExtension) - add(::RotationExtension) } this.presence { diff --git a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/AcceptEditButton.kt b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/AcceptEditButton.kt index ff4d4cf..ffb7759 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/AcceptEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/AcceptEditButton.kt @@ -34,7 +34,7 @@ import net.moonleay.lilJudd.util.EmbedUtil import net.moonleay.lilJudd.util.Logger import net.moonleay.lilJudd.util.MessageUtil -class AcceptEditButton : IEditButton { +class AcceptEditButton() : IEditButton { override val id: String = "public.edit.btn.matchmanagement.accept" override suspend fun onInteraction( @@ -60,7 +60,7 @@ class AcceptEditButton : IEditButton { Logger.out("role is null") return } - val member = interaction.user.asMember(guild.id) + val member = interaction.user.asMember(guild.id) ?: return // do the checks and update if (m.embeds[0].fields[0].value.contains(user.id.value.toString())) { if (member.roleIds.contains(Snowflake(mpdd.roleID))) { diff --git a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/DeclineEditButton.kt b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/DeclineEditButton.kt index d205b05..12c8375 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/DeclineEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/DeclineEditButton.kt @@ -60,7 +60,7 @@ class DeclineEditButton : IEditButton { Logger.out("role is null") return } - val member = interaction.user.asMember(guild.id) + val member = interaction.user.asMember(guild.id) ?: return if (m.embeds[0].fields[0].value.contains(user.id.value.toString())) { if (member.roleIds.contains(Snowflake(mpdd.roleID))) { Logger.out("Removing role from ${member.username}") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3Api.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3Api.kt index 100c9dc..bce9a62 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3Api.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3Api.kt @@ -25,7 +25,7 @@ import net.moonleay.liljudd.build.BuildConstants object Splatoon3Api { - var schedules: Schedules? = null + var schedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Schedules? = null fun updateSchedule() { val response = NetUtil.GETJsonData("https://splatoon3.ink/data/schedules.json", "lilJudd/${BuildConstants.version}") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3ApiDataGrabber.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3ApiDataGrabber.kt index f24a46f..6a9eedf 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3ApiDataGrabber.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/Splatoon3ApiDataGrabber.kt @@ -1,6 +1,6 @@ /* * lilJudd - * Copyright (C) 2024 moonleay + * 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 @@ -20,12 +20,11 @@ package net.moonleay.lilJudd.data.api.splatoon3ink import net.moonleay.lilJudd.data.api.splatoon3ink.schedules.BankaraNode import net.moonleay.lilJudd.data.api.splatoon3ink.schedules.RegularNode -import net.moonleay.lilJudd.data.api.splatoon3ink.schedules.SalmonRunNode import net.moonleay.lilJudd.data.api.splatoon3ink.schedules.XNode import net.moonleay.lilJudd.util.TimeUtil object Splatoon3ApiDataGrabber { - fun getRegularMode(timestamp: Long): RegularNode { + private fun getRegularMode(timestamp: Long): net.moonleay.lilJudd.data.api.splatoon3ink.schedules.RegularNode { Splatoon3Api.schedules!!.data.regularSchedules.nodes.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -36,7 +35,7 @@ object Splatoon3ApiDataGrabber { throw Exception("No current mode found") } - fun getOpenMode(timestamp: Long): BankaraNode { + private fun getOpenMode(timestamp: Long): net.moonleay.lilJudd.data.api.splatoon3ink.schedules.BankaraNode { Splatoon3Api.schedules!!.data.bankaraSchedules.nodes.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -50,7 +49,7 @@ object Splatoon3ApiDataGrabber { throw Exception("No current mode found") } - fun getXMode(timestamp: Long): XNode { + private fun getXMode(timestamp: Long): net.moonleay.lilJudd.data.api.splatoon3ink.schedules.XNode { Splatoon3Api.schedules!!.data.xSchedules.nodes.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -61,7 +60,7 @@ object Splatoon3ApiDataGrabber { throw Exception("No current mode found") } - fun getSeriesMode(timestamp: Long): BankaraNode { + private fun getSeriesMode(timestamp: Long): net.moonleay.lilJudd.data.api.splatoon3ink.schedules.BankaraNode { Splatoon3Api.schedules!!.data.bankaraSchedules.nodes.map { modeData -> val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") @@ -75,16 +74,6 @@ object Splatoon3ApiDataGrabber { throw Exception("No current mode found") } - fun getSalmonRun(timestamp: Long): SalmonRunNode { - Splatoon3Api.schedules!!.data.coopGroupingSchedule.regularSchedules.nodes.map { modeData -> - val startTime = TimeUtil.deformatJSONTime(modeData.startTime, "UTC") - val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") - if (timestamp in startTime..endTime) { - return modeData - } - } - throw Exception("No current mode found") - } fun getRotationTime(timestamp: Long): String { val modeData = getRegularMode(timestamp) val endTime = TimeUtil.deformatJSONTime(modeData.endTime, "UTC") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraMatchSetting.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraMatchSetting.kt index 773f4e8..a73a448 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraMatchSetting.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraMatchSetting.kt @@ -31,7 +31,7 @@ data class BankaraMatchSetting( @SerialName("__typename") val typename: String, @SerialName("vsRule") - val vsRule: VsRule, + val vsRule: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.VsRule, @SerialName("vsStages") - val vsStages: List + val vsStages: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraNode.kt index 953c79a..e40379c 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraNode.kt @@ -25,11 +25,11 @@ import kotlinx.serialization.Serializable @Serializable data class BankaraNode( @SerialName("bankaraMatchSettings") - val bankaraMatchSettings: List?, + val bankaraMatchSettings: List?, @SerialName("endTime") val endTime: String, @SerialName("festMatchSettings") - val festMatchSettings: List?, + val festMatchSettings: List?, @SerialName("startTime") val startTime: String ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraSchedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraSchedules.kt index a770703..0363b5f 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraSchedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BankaraSchedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class BankaraSchedules( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SalmonRunNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunScheduleNode.kt similarity index 90% rename from src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SalmonRunNode.kt rename to src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunScheduleNode.kt index 85c4c8a..e51551e 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SalmonRunNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunScheduleNode.kt @@ -23,11 +23,11 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @Serializable -data class SalmonRunNode( +data class BigRunScheduleNode( @SerialName("endTime") val endTime: String, @SerialName("setting") - val setting: Setting, + val setting: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Setting, @SerialName("__splatoon3ink_king_salmonid_guess") val splatoon3inkKingSalmonidGuess: String, @SerialName("startTime") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunSchedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunSchedules.kt index 47b5890..de77938 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunSchedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/BigRunSchedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class BigRunSchedules( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopGroupingSchedule.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopGroupingSchedule.kt index 412e5fd..baefdf1 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopGroupingSchedule.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopGroupingSchedule.kt @@ -27,9 +27,9 @@ data class CoopGroupingSchedule( @SerialName("bannerImage") val bannerImage: String?, // is null @SerialName("bigRunSchedules") - val bigRunSchedules: BigRunSchedules, + val bigRunSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.BigRunSchedules, @SerialName("regularSchedules") - val regularSchedules: RegularSchedules, + val regularSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.RegularSchedules, @SerialName("teamContestSchedules") - val teamContestSchedules: TeamContestSchedules? + val teamContestSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.TeamContestSchedules? ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopStage.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopStage.kt index 2cb21da..ddfb9da 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopStage.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CoopStage.kt @@ -27,9 +27,9 @@ data class CoopStage( @SerialName("id") val id: String, @SerialName("image") - val image: Image, + val image: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Image, @SerialName("name") val name: String, @SerialName("thumbnailImage") - val thumbnailImage: ThumbnailImage + val thumbnailImage: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.ThumbnailImage ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentFest.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentFest.kt index d13d8fd..63d995e 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentFest.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentFest.kt @@ -35,9 +35,9 @@ data class CurrentFest( @SerialName("state") val state: String, @SerialName("teams") - val teams: List, + val teams: List, @SerialName("title") val title: String, @SerialName("tricolorStage") - val tricolorStage: TricolorStage + val tricolorStage: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.TricolorStage ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentPlayer.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentPlayer.kt index 5abc31b..3bab50b 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentPlayer.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/CurrentPlayer.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class CurrentPlayer( @SerialName("userIcon") - val userIcon: UserIcon + val userIcon: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.UserIcon ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventNode.kt index 96e1419..7b7f011 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventNode.kt @@ -25,7 +25,7 @@ import kotlinx.serialization.Serializable @Serializable data class EventNode( @SerialName("leagueMatchSetting") - val leagueMatchSetting: LeagueMatchSetting, + val leagueMatchSetting: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.LeagueMatchSetting, @SerialName("timePeriods") - val timePeriods: List + val timePeriods: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventSchedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventSchedules.kt index c86ea33..f5f3fe3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventSchedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/EventSchedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class EventSchedules( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestMatchSettingX.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestMatchSettingX.kt index 8b212c8..c759a30 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestMatchSettingX.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestMatchSettingX.kt @@ -29,7 +29,7 @@ data class FestMatchSettingX( @SerialName("__typename") val typename: String, @SerialName("vsRule") - val vsRule: VsRule, + val vsRule: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.VsRule, @SerialName("vsStages") - val vsStages: List + val vsStages: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestNode.kt index b9b4262..e8a438d 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestNode.kt @@ -27,7 +27,7 @@ data class FestNode( @SerialName("endTime") val endTime: String, @SerialName("festMatchSettings") - val festMatchSettings: FestMatchSettingX?, + val festMatchSettings: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.FestMatchSettingX?, @SerialName("startTime") val startTime: String ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestSchedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestSchedules.kt index d606246..8eed590 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestSchedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/FestSchedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class FestSchedules( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/LeagueMatchSetting.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/LeagueMatchSetting.kt index 8008afc..c8e4ba1 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/LeagueMatchSetting.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/LeagueMatchSetting.kt @@ -27,11 +27,11 @@ data class LeagueMatchSetting( @SerialName("__isVsSetting") val isVsSetting: String, @SerialName("leagueMatchEvent") - val leagueMatchEvent: LeagueMatchEvent, + val leagueMatchEvent: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.LeagueMatchEvent, @SerialName("__typename") val typename: String, @SerialName("vsRule") - val vsRule: VsRule, + val vsRule: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.VsRule, @SerialName("vsStages") - val vsStages: List + val vsStages: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/MapNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/MapNode.kt index b1c3813..107545f 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/MapNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/MapNode.kt @@ -29,7 +29,7 @@ data class MapNode( @SerialName("name") val name: String, @SerialName("originalImage") - val originalImage: OriginalImage, + val originalImage: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.OriginalImage, @SerialName("stats") val stats: String?, // is null @SerialName("vsStageId") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularMatchSetting.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularMatchSetting.kt index 44da86c..ffb1d51 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularMatchSetting.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularMatchSetting.kt @@ -29,7 +29,7 @@ data class RegularMatchSetting( @SerialName("__typename") val typename: String, @SerialName("vsRule") - val vsRule: VsRule, + val vsRule: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.VsRule, @SerialName("vsStages") - val vsStages: List + val vsStages: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularNode.kt index 321e0be..48d08fa 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularNode.kt @@ -27,9 +27,9 @@ data class RegularNode( @SerialName("endTime") val endTime: String, @SerialName("festMatchSettings") - val festMatchSettings: FestMatchSettingXX?, + val festMatchSettings: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.FestMatchSettingXX?, @SerialName("regularMatchSetting") - val regularMatchSetting: RegularMatchSetting, + val regularMatchSetting: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.RegularMatchSetting, @SerialName("startTime") val startTime: String ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedules.kt index ab2ccd8..6dc058f 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class RegularSchedules( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedulesX.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedulesX.kt index 132b607..6995bf3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedulesX.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/RegularSchedulesX.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class RegularSchedulesX( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Schedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Schedules.kt index 10c9412..2d058c6 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Schedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Schedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class Schedules( @SerialName("data") - val data: SchedulesData + val data: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.SchedulesData ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SchedulesData.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SchedulesData.kt index 21e4c48..9dd136b 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SchedulesData.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/SchedulesData.kt @@ -25,21 +25,21 @@ import kotlinx.serialization.Serializable @Serializable data class SchedulesData( @SerialName("bankaraSchedules") - val bankaraSchedules: BankaraSchedules, + val bankaraSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.BankaraSchedules, @SerialName("coopGroupingSchedule") - val coopGroupingSchedule: CoopGroupingSchedule, + val coopGroupingSchedule: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.CoopGroupingSchedule, @SerialName("currentFest") - val currentFest: CurrentFest?, + val currentFest: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.CurrentFest?, @SerialName("currentPlayer") - val currentPlayer: CurrentPlayer, + val currentPlayer: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.CurrentPlayer, @SerialName("eventSchedules") - val eventSchedules: EventSchedules, + val eventSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.EventSchedules, @SerialName("festSchedules") - val festSchedules: FestSchedules, + val festSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.FestSchedules, @SerialName("regularSchedules") - val regularSchedules: RegularSchedulesX, + val regularSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.RegularSchedulesX, @SerialName("vsStages") - val vsStages: VsStages, + val vsStages: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.VsStages, @SerialName("xSchedules") - val xSchedules: XSchedules + val xSchedules: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.XSchedules ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Setting.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Setting.kt index 8d1529b..ef98cfa 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Setting.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Setting.kt @@ -25,13 +25,13 @@ import kotlinx.serialization.Serializable @Serializable data class Setting( @SerialName("boss") - val boss: Boss, + val boss: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Boss, @SerialName("coopStage") - val coopStage: CoopStage, + val coopStage: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.CoopStage, @SerialName("__isCoopSetting") val isCoopSetting: String, @SerialName("__typename") val typename: String, @SerialName("weapons") - val weapons: List + val weapons: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Team.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Team.kt index 2ee6032..f015188 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Team.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Team.kt @@ -25,7 +25,7 @@ import kotlinx.serialization.Serializable @Serializable data class Team( @SerialName("color") - val color: Color, + val color: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Color, @SerialName("id") val id: String, // @SerialName("myVoteState") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/TricolorStage.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/TricolorStage.kt index 21ba8c5..958d1a5 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/TricolorStage.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/TricolorStage.kt @@ -27,7 +27,7 @@ data class TricolorStage( @SerialName("id") val id: String, @SerialName("image") - val image: Image, + val image: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Image, @SerialName("name") val name: String ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStage.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStage.kt index 3225c3d..9d9ecb3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStage.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStage.kt @@ -27,7 +27,7 @@ data class VsStage( @SerialName("id") val id: String, @SerialName("image") - val image: Image, + val image: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Image, @SerialName("name") val name: String, @SerialName("vsStageId") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStages.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStages.kt index 08501f9..21d32f1 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStages.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/VsStages.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class VsStages( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Weapon.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Weapon.kt index 66f880c..9b47a82 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Weapon.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/Weapon.kt @@ -25,7 +25,7 @@ import kotlinx.serialization.Serializable @Serializable data class Weapon( @SerialName("image") - val image: Image, + val image: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.Image, @SerialName("name") val name: String, @SerialName("__splatoon3ink_id") diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XMatchSetting.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XMatchSetting.kt index 5a1dc64..7467db1 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XMatchSetting.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XMatchSetting.kt @@ -29,7 +29,7 @@ data class XMatchSetting( @SerialName("__typename") val typename: String, @SerialName("vsRule") - val vsRule: VsRule, + val vsRule: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.VsRule, @SerialName("vsStages") - val vsStages: List + val vsStages: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XNode.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XNode.kt index 95b8435..1a55bc5 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XNode.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XNode.kt @@ -27,9 +27,9 @@ data class XNode( @SerialName("endTime") val endTime: String, @SerialName("festMatchSettings") - val festMatchSettings: FestMatchSettingXX?, + val festMatchSettings: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.FestMatchSettingXX?, @SerialName("startTime") val startTime: String, @SerialName("xMatchSetting") - val xMatchSetting: XMatchSetting + val xMatchSetting: net.moonleay.lilJudd.data.api.splatoon3ink.schedules.XMatchSetting ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XSchedules.kt b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XSchedules.kt index ba079aa..a3939c3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XSchedules.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/api/splatoon3ink/schedules/XSchedules.kt @@ -25,5 +25,5 @@ import kotlinx.serialization.Serializable @Serializable data class XSchedules( @SerialName("nodes") - val nodes: List + val nodes: List ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/MatchPlanningDataRepository.kt b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/MatchPlanningDataRepository.kt index 6b0bbd9..84a1e66 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/MatchPlanningDataRepository.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/MatchPlanningDataRepository.kt @@ -51,7 +51,7 @@ object MatchPlanningDataRepository { fun get(id: Int): MatchPlanningDataData? = transaction { - MatchPlanningData.selectAll().where { MatchPlanningData.id eq id }.firstOrNull()?.let { + MatchPlanningData.select { MatchPlanningData.id eq id }.firstOrNull()?.let { MatchPlanningDataData( it[MatchPlanningData.id], it[MatchPlanningData.serverid], @@ -69,7 +69,7 @@ object MatchPlanningDataRepository { fun getFromMessageInChannelInServer(messageID: Long, channelID: Long, serverID: Long): MatchPlanningDataData? = transaction { - MatchPlanningData.selectAll().where { + MatchPlanningData.select { MatchPlanningData.messageid eq (messageID) and ( MatchPlanningData.serverid eq (serverID)) and ( MatchPlanningData.channelid eq (channelID)) @@ -98,15 +98,15 @@ object MatchPlanningDataRepository { fun write(data: MatchPlanningDataData): Int = transaction { MatchPlanningData.insert { - it[serverid] = data.serverID - it[channelid] = data.channelID - it[matchtype] = data.matchType - it[registererid] = data.registererID - it[roleid] = data.roleID - it[opponentName] = data.opponentName - it[messageid] = data.messageID - it[timestamp] = data.timestamp - it[jobstr] = data.jobString + it[MatchPlanningData.serverid] = data.serverID + it[MatchPlanningData.channelid] = data.channelID + it[MatchPlanningData.matchtype] = data.matchType + it[MatchPlanningData.registererid] = data.registererID + it[MatchPlanningData.roleid] = data.roleID + it[MatchPlanningData.opponentName] = data.opponentName + it[MatchPlanningData.messageid] = data.messageID + it[MatchPlanningData.timestamp] = data.timestamp + it[MatchPlanningData.jobstr] = data.jobString } get MatchPlanningData.id } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/PlanningNotifierRolesRepository.kt b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/PlanningNotifierRolesRepository.kt index eea22df..4059e70 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/PlanningNotifierRolesRepository.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/PlanningNotifierRolesRepository.kt @@ -46,7 +46,9 @@ object PlanningNotifierRolesRepository { fun getForChannel(channelID: Long): PlanningNotifierRolesData? = transaction { - PlanningNotifierRoles.selectAll().where { PlanningNotifierRoles.channelid eq channelID }.firstOrNull()?.let { + PlanningNotifierRoles.select { + PlanningNotifierRoles.channelid eq channelID + }.firstOrNull()?.let { PlanningNotifierRolesData( it[PlanningNotifierRoles.id], it[PlanningNotifierRoles.serverid], @@ -59,9 +61,9 @@ object PlanningNotifierRolesRepository { fun getForChannelInServer(channelID: Long, serverID: Long): PlanningNotifierRolesData? = transaction { - PlanningNotifierRoles.selectAll() - .where { PlanningNotifierRoles.channelid eq channelID and (PlanningNotifierRoles.serverid eq serverID) } - .firstOrNull()?.let { + PlanningNotifierRoles.select { + PlanningNotifierRoles.channelid eq channelID and (PlanningNotifierRoles.serverid eq serverID) + }.firstOrNull()?.let { PlanningNotifierRolesData( it[PlanningNotifierRoles.id], it[PlanningNotifierRoles.serverid], @@ -74,23 +76,22 @@ object PlanningNotifierRolesRepository { fun existsInChannel(channelID: Long): Boolean = transaction { - PlanningNotifierRoles.selectAll().where { PlanningNotifierRoles.channelid eq channelID }.count() > 0 + PlanningNotifierRoles.select { PlanningNotifierRoles.channelid eq channelID }.count() > 0 } fun existsInChannelFromSever(channelID: Long, serverID: Long): Boolean = transaction { - PlanningNotifierRoles.selectAll() - .where { PlanningNotifierRoles.channelid eq channelID and (PlanningNotifierRoles.serverid eq serverID) } + PlanningNotifierRoles.select { PlanningNotifierRoles.channelid eq channelID and (PlanningNotifierRoles.serverid eq serverID) } .count() > 0 } fun write(data: PlanningNotifierRolesData) { transaction { PlanningNotifierRoles.insert { - it[serverid] = data.serverID - it[channelid] = data.channelID - it[hastimeroleid] = data.hasTimeRoleID - it[wantstobenotifiedid] = data.wantsToBeNotifiedID + it[PlanningNotifierRoles.serverid] = data.serverID + it[PlanningNotifierRoles.channelid] = data.channelID + it[PlanningNotifierRoles.hastimeroleid] = data.hasTimeRoleID + it[PlanningNotifierRoles.wantstobenotifiedid] = data.wantsToBeNotifiedID } get PlanningNotifierRoles.id } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningChannelsRepository.kt b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningChannelsRepository.kt index 305a8b5..f5fd171 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningChannelsRepository.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningChannelsRepository.kt @@ -43,8 +43,7 @@ object TimePlanningChannelsRepository { fun exists(channelID: Long, serverID: Long): Boolean = transaction { - TimePlanningChannels.selectAll() - .where { TimePlanningChannels.channelid eq channelID and (TimePlanningChannels.serverid eq serverID) } + TimePlanningChannels.select { TimePlanningChannels.channelid eq channelID and (TimePlanningChannels.serverid eq serverID) } .firstOrNull() != null } @@ -56,15 +55,15 @@ object TimePlanningChannelsRepository { fun deleteFromChannelInServer(channelID: Long, serverID: Long) { transaction { - TimePlanningChannels.deleteWhere { channelid eq channelID and (serverid eq serverID) } + TimePlanningChannels.deleteWhere { TimePlanningChannels.channelid eq channelID and (TimePlanningChannels.serverid eq serverID) } } } fun write(data: TimePlanningChannelsData): Int = transaction { TimePlanningChannels.insert { - it[serverid] = data.serverID - it[channelid] = data.channelID + it[TimePlanningChannels.serverid] = data.serverID + it[TimePlanningChannels.channelid] = data.channelID } get TimePlanningChannels.id } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningMessagesRepository.kt b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningMessagesRepository.kt index fad3a7c..780a939 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningMessagesRepository.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/data/database/repository/TimePlanningMessagesRepository.kt @@ -20,8 +20,9 @@ package net.moonleay.lilJudd.data.database.repository import net.moonleay.lilJudd.data.database.entry.TimePlanningMessagesData import net.moonleay.lilJudd.data.database.tables.TimePlanningMessages -import org.jetbrains.exposed.sql.* -import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq +import org.jetbrains.exposed.sql.and +import org.jetbrains.exposed.sql.insert +import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.transactions.transaction object TimePlanningMessagesRepository { @@ -39,7 +40,9 @@ object TimePlanningMessagesRepository { fun getWeek(stamp: Long): List { val dataList = mutableListOf() transaction { - for (pnr in TimePlanningMessages.selectAll().where { TimePlanningMessages.weekstamp eq (stamp) }) { + for (pnr in TimePlanningMessages.select { + TimePlanningMessages.weekstamp eq (stamp) + }) { dataList.add( TimePlanningMessagesData( pnr[TimePlanningMessages.id], @@ -56,8 +59,9 @@ object TimePlanningMessagesRepository { fun getWeekInChannel(stamp: Long, channelID: Long): TimePlanningMessagesData? = transaction { - TimePlanningMessages.selectAll() - .where { TimePlanningMessages.weekstamp eq (stamp) and (TimePlanningMessages.channelid eq channelID) }.firstOrNull()?.let { + TimePlanningMessages.select { + TimePlanningMessages.weekstamp eq (stamp) and (TimePlanningMessages.channelid eq channelID) + }.firstOrNull()?.let { TimePlanningMessagesData( it[TimePlanningMessages.id], it[TimePlanningMessages.serverid], 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 9c458b5..0000000 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/RotationExtension.kt +++ /dev/null @@ -1,464 +0,0 @@ -/* - * lilJudd - * Copyright (C) 2024 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 dev.kord.common.Color -import dev.kord.rest.builder.message.embed -import kotlinx.datetime.Clock -import net.moonleay.lilJudd.data.api.splatoon3ink.Splatoon3ApiDataGrabber -import net.moonleay.lilJudd.extensions.component.SplatoonOnlineMode -import net.moonleay.lilJudd.util.TimeUtil - -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 -> { - val regSched = Splatoon3ApiDataGrabber.getRegularMode(System.currentTimeMillis()) - val regMaps = regSched.regularMatchSetting.vsStages - val regMap1 = regMaps[0] - val regMap2 = regMaps[1] - - val serSched = Splatoon3ApiDataGrabber.getSeriesMode(System.currentTimeMillis()) - val serMaps = serSched.bankaraMatchSettings!!.first().vsStages - val serMap1 = serMaps[0] - val serMap2 = serMaps[1] - - val opnSched = Splatoon3ApiDataGrabber.getSeriesMode(System.currentTimeMillis()) - val opnMaps = opnSched.bankaraMatchSettings!!.last().vsStages - val opnMap1 = opnMaps[0] - val opnMap2 = opnMaps[1] - - val xSched = Splatoon3ApiDataGrabber.getXMode(System.currentTimeMillis()) - val xMaps = xSched.xMatchSetting.vsStages - val xMap1 = xMaps[0] - val xMap2 = xMaps[1] - - val salSched = Splatoon3ApiDataGrabber.getSalmonRun(System.currentTimeMillis()) - val salMap = salSched.setting.coopStage.name - val salBoss = salSched.setting.boss.name - val salWeapons = salSched.setting.weapons - - this.respond { - this.embed { - this.author { - this.name = "Current rotation for" - } - this.title = "All Modes" - this.description = "[[Open on website](https://splatoon3.ink/)]" - this.color = Color(0x1437FF) - - this.thumbnail { - this.url = "https://static.moonleay.net/img/lilJudd/deepcut.png" - } - - this.field { - this.name = "Regular (${ - TimeUtil.getTimeFromJSONTime( - regSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(regSched.endTime, "UTC")})" - this.value = - "${regSched.regularMatchSetting.vsRule.name} on ${regMap1.name} & ${regMap2.name}" - this.inline = false - } - - this.field { - this.name = "Series (${ - TimeUtil.getTimeFromJSONTime( - serSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(serSched.endTime, "UTC")})" - this.value = - "${serSched.bankaraMatchSettings.first().vsRule.name} on ${serMap1.name} & ${serMap2.name}" - this.inline = false - } - - this.field { - this.name = "Open (${ - TimeUtil.getTimeFromJSONTime( - opnSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(opnSched.endTime, "UTC")})" - this.value = - "${opnSched.bankaraMatchSettings.last().vsRule.name} on ${opnMap1.name} & ${opnMap2.name}" - this.inline = false - } - - this.field { - this.name = "X (${ - TimeUtil.getTimeFromJSONTime( - xSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(xSched.endTime, "UTC")})" - this.value = "${xSched.xMatchSetting.vsRule.name} on ${xMap1.name} & ${xMap2.name}" - this.inline = false - } - - this.field { - this.name = "Salmon Run (${ - TimeUtil.getTimeFromJSONTimeLong( - salSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTimeLong(salSched.endTime, "UTC")})" - this.value = - "${salBoss} on ${salMap} with ${salWeapons[0].name}, ${salWeapons[1].name}, ${salWeapons[2].name} & ${salWeapons[3].name}" - this.inline = false - } - - this.timestamp = Clock.System.now() - this.footer { - this.text = "Data provided by splatoon3.ink" - this.icon = "https://fedi.splatoon3.ink/favicon.png" - } - - } - } - } - - SplatoonOnlineMode.REGULAR -> { - val regSched = Splatoon3ApiDataGrabber.getRegularMode(System.currentTimeMillis()) - val regMaps = regSched.regularMatchSetting.vsStages - val regMap1 = regMaps[0] - val regMap2 = regMaps[1] - - val regSched2 = - Splatoon3ApiDataGrabber.getRegularMode(System.currentTimeMillis() + 1000 * 60 * 60 * 2) - val regMaps2 = regSched2.regularMatchSetting.vsStages - val regMap12 = regMaps2[0] - val regMap22 = regMaps2[1] - - this.respond { - this.embed { - this.author { - this.name = "Current rotation for" - } - this.title = "Regular Mode" - this.description = "[[Open on website](https://splatoon3.ink/)]" - this.color = Color(0x18c81b) - - this.thumbnail { - this.url = "https://static.moonleay.net/img/lilJudd/regular.png" - } - - this.field { - this.name = "Current (${ - TimeUtil.getTimeFromJSONTime( - regSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(regSched.endTime, "UTC")})" - this.value = - "${regSched.regularMatchSetting.vsRule.name} on ${regMap1.name} & ${regMap2.name}" - this.inline = false - } - - this.field { - this.name = "${ - TimeUtil.getTimeFromJSONTime( - regSched2.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(regSched2.endTime, "UTC")}" - this.value = - "${regSched2.regularMatchSetting.vsRule.name} on ${regMap12.name} & ${regMap22.name}" - this.inline = false - } - - - this.timestamp = Clock.System.now() - this.footer { - this.text = "Data provided by splatoon3.ink" - this.icon = "https://fedi.splatoon3.ink/favicon.png" - } - - } - } - } - - SplatoonOnlineMode.SERIES -> { - val serSched = Splatoon3ApiDataGrabber.getSeriesMode(System.currentTimeMillis()) - val serMaps = serSched.bankaraMatchSettings!!.first().vsStages - val serMap1 = serMaps[0] - val serMap2 = serMaps[1] - - val serSched2 = - Splatoon3ApiDataGrabber.getSeriesMode(System.currentTimeMillis() + 1000 * 60 * 60 * 2) - val serMaps2 = serSched2.bankaraMatchSettings!!.first().vsStages - val serMap12 = serMaps2[0] - val serMap22 = serMaps2[1] - - this.respond { - this.embed { - this.author { - this.name = "Current rotation for" - } - this.title = "Ranked Series Mode" - this.description = "[[Open on website](https://splatoon3.ink/)]" - this.color = Color(0xE14412) - - this.thumbnail { - this.url = "https://static.moonleay.net/img/lilJudd/bankara.png" - } - - this.field { - this.name = "Current (${ - TimeUtil.getTimeFromJSONTime( - serSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(serSched.endTime, "UTC")})" - this.value = - "${serSched.bankaraMatchSettings.first().vsRule.name} on ${serMap1.name} & ${serMap2.name}" - this.inline = false - } - - this.field { - this.name = "${ - TimeUtil.getTimeFromJSONTime( - serSched2.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(serSched2.endTime, "UTC")}" - this.value = - "${serSched2.bankaraMatchSettings.first().vsRule.name} on ${serMap12.name} & ${serMap22.name}" - this.inline = false - } - - - this.timestamp = Clock.System.now() - this.footer { - this.text = "Data provided by splatoon3.ink" - this.icon = "https://fedi.splatoon3.ink/favicon.png" - } - - } - } - } - - SplatoonOnlineMode.OPEN -> { - val opnSched = Splatoon3ApiDataGrabber.getSeriesMode(System.currentTimeMillis()) - val opnMaps = opnSched.bankaraMatchSettings!!.last().vsStages - val opnMap1 = opnMaps[0] - val opnMap2 = opnMaps[1] - - val opnSched2 = - Splatoon3ApiDataGrabber.getSeriesMode(System.currentTimeMillis() + 1000 * 60 * 60 * 2) - val opnMaps2 = opnSched2.bankaraMatchSettings!!.last().vsStages - val opnMap12 = opnMaps2[0] - val opnMap22 = opnMaps2[1] - - this.respond { - this.embed { - this.author { - this.name = "Current rotation for" - } - this.title = "Ranked Open Mode" - this.description = "[[Open on website](https://splatoon3.ink/)]" - this.color = Color(0xE14412) - - this.thumbnail { - this.url = "https://static.moonleay.net/img/lilJudd/bankara.png" - } - - this.field { - this.name = "Current (${ - TimeUtil.getTimeFromJSONTime( - opnSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(opnSched.endTime, "UTC")})" - this.value = - "${opnSched.bankaraMatchSettings.last().vsRule.name} on ${opnMap1.name} & ${opnMap2.name}" - this.inline = false - } - - this.field { - this.name = "${ - TimeUtil.getTimeFromJSONTime( - opnSched2.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(opnSched2.endTime, "UTC")}" - this.value = - "${opnSched2.bankaraMatchSettings.last().vsRule.name} on ${opnMap12.name} & ${opnMap22.name}" - this.inline = false - } - - - this.timestamp = Clock.System.now() - this.footer { - this.text = "Data provided by splatoon3.ink" - this.icon = "https://fedi.splatoon3.ink/favicon.png" - } - - } - } - } - - SplatoonOnlineMode.X -> { - val xSched = Splatoon3ApiDataGrabber.getXMode(System.currentTimeMillis()) - val xMaps = xSched.xMatchSetting.vsStages - val xMap1 = xMaps[0] - val xMap2 = xMaps[1] - - val xSched2 = Splatoon3ApiDataGrabber.getXMode(System.currentTimeMillis() + 1000 * 60 * 60 * 2) - val xMaps2 = xSched2.xMatchSetting.vsStages - val xMap12 = xMaps2[0] - val xMap22 = xMaps2[1] - - this.respond { - this.embed { - this.author { - this.name = "Current rotation for" - } - this.title = "X Mode" - this.description = "[[Open on website](https://splatoon3.ink/)]" - this.color = Color(0x0ECB93) - - this.thumbnail { - this.url = "https://static.moonleay.net/img/lilJudd/x.png" - } - - this.field { - this.name = "Current (${ - TimeUtil.getTimeFromJSONTime( - xSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(xSched.endTime, "UTC")})" - this.value = "${xSched.xMatchSetting.vsRule.name} on ${xMap1.name} & ${xMap2.name}" - this.inline = false - } - - this.field { - this.name = "${ - TimeUtil.getTimeFromJSONTime( - xSched2.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTime(xSched2.endTime, "UTC")}" - this.value = - "${xSched2.xMatchSetting.vsRule.name} on ${xMap12.name} & ${xMap22.name}" - this.inline = false - } - - - this.timestamp = Clock.System.now() - this.footer { - this.text = "Data provided by splatoon3.ink" - this.icon = "https://fedi.splatoon3.ink/favicon.png" - } - - } - } - } - - SplatoonOnlineMode.SALMON_RUN -> { - val salSched = Splatoon3ApiDataGrabber.getSalmonRun(System.currentTimeMillis()) - val salMap = salSched.setting.coopStage.name - val salBoss = salSched.setting.boss.name - val salWeapons = salSched.setting.weapons - - val salSched2 = - Splatoon3ApiDataGrabber.getSalmonRun(System.currentTimeMillis() + 1000 * 60 * 60 * 24 * 2) - val salMap2 = salSched2.setting.coopStage.name - val salBoss2 = salSched2.setting.boss.name - val salWeapons2 = salSched2.setting.weapons - - this.respond { - this.embed { - this.author { - this.name = "Current rotation for" - } - this.title = "Salmon Run" - this.description = "[[Open on website](https://splatoon3.ink/salmonrun)]" - this.color = Color(0xEA4F03) - - this.thumbnail { - this.url = "https://static.moonleay.net/img/lilJudd/grizz.png" - } - - this.field { - this.name = "Current (${ - TimeUtil.getTimeFromJSONTimeLong( - salSched.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTimeLong(salSched.endTime, "UTC")})" - this.value = - "${salBoss} on ${salMap} with ${salWeapons[0].name}, ${salWeapons[1].name}, ${salWeapons[2].name} & ${salWeapons[3].name}" - this.inline = false - } - - this.field { - this.name = "${ - TimeUtil.getTimeFromJSONTimeLong( - salSched2.startTime, - "UTC" - ) - } - ${TimeUtil.getTimeFromJSONTimeLong(salSched2.endTime, "UTC")}" - this.value = - "${salBoss2} on ${salMap2} with ${salWeapons2[0].name}, ${salWeapons2[1].name}, ${salWeapons2[2].name} & ${salWeapons2[3].name}" - this.inline = false - } - - - this.timestamp = Clock.System.now() - this.footer { - this.text = "Data provided by splatoon3.ink" - this.icon = "https://fedi.splatoon3.ink/favicon.png" - } - } - } - } - } - } - } - } - - 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/SendPlannerExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt index f5d7c32..acd59f4 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt @@ -41,7 +41,7 @@ class SendPlannerExtension : Extension() { get() = false override suspend fun setup() { - publicSlashCommand { + publicSlashCommand() { name = "sendplanner" description = "Send the planner for the current week" this.action { diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt index 6d29add..1d0ad06 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt @@ -34,7 +34,7 @@ class UpdateRolesExtension : Extension() { get() = false override suspend fun setup() { - publicSlashCommand { + publicSlashCommand() { name = "updateroles" description = "Update the roles of the members in the current server" this.action { 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 c6ae569..0000000 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/component/SplatoonOnlineMode.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * lilJudd - * Copyright (C) 2024 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/jobs/StatusUpdater.kt b/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt index 7fed538..4aa8fb3 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt @@ -30,7 +30,7 @@ object StatusUpdater : ICronjob { override val jobName: String get() = "StatusUpdater" override val jobIncoming: String - get() = "/30 * * * * * 0o *" //Every 30 seconds + get() = "/10 * * * * * 0o *" //Every 5 seconds override val jobType: CronjobType get() = CronjobType.INFINITE override val continueJob: Boolean diff --git a/src/main/kotlin/net/moonleay/lilJudd/util/TimeUtil.kt b/src/main/kotlin/net/moonleay/lilJudd/util/TimeUtil.kt index acf0da8..dba203c 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/util/TimeUtil.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/util/TimeUtil.kt @@ -1,6 +1,6 @@ /* * lilJudd - * Copyright (C) 2024 moonleay + * 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 @@ -177,24 +177,6 @@ object TimeUtil { return ZonedDateTime.of(localDateTime, zoneId).toEpochSecond() * 1000 } - fun getTimeFromJSONTime(inp: String, zone: String): String { - // 2023-10-05T08:00:00Z - val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'") - val localDateTime = LocalDateTime.parse(inp, formatter) - val zoneId = ZoneId.of(zone) // TODO: Add the possibility to set your timezone - val returnFormat = DateTimeFormatter.ofPattern("HH:mm") - return ZonedDateTime.of(localDateTime, zoneId).format(returnFormat) - } - - fun getTimeFromJSONTimeLong(inp: String, zone: String): String { - // 2023-10-05T08:00:00Z - val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'") - val localDateTime = LocalDateTime.parse(inp, formatter) - val zoneId = ZoneId.of(zone) // TODO: Add the possibility to set your timezone - val returnFormat = DateTimeFormatter.ofPattern("dd'/'MM',' HH:mm") - return ZonedDateTime.of(localDateTime, zoneId).format(returnFormat) - } - fun getTimeDifferenceFormatted(start: Long, end: Long): String { val diff = end - start return getTimeFormatedShortend(diff, false)