From b2c43e2c0491efcbdab02b0a57febb9465067cc9 Mon Sep 17 00:00:00 2001 From: moonleay Date: Tue, 19 Dec 2023 10:28:04 +0100 Subject: [PATCH 1/3] chore: upgrade dependencies Signed-off-by: moonleay --- build.gradle.kts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4b5ed07..00e0104 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,12 +34,12 @@ version = System.getenv("CI_COMMIT_TAG")?.let { "$it-${System.getenv("CI_COMMIT_ ?: System.getenv("CI_COMMIT_SHORT_SHA")?.let { "$it-dev" } ?: "2.6.7" -val kordver = "1.5.9-SNAPSHOT" +val kordver = "1.7.1-SNAPSHOT" val coroutinesver = "1.7.3" -val ktorver = "2.3.5" -val exposedver = "0.43.0" -val postgresver = "42.6.0" -val krontabver = "2.2.1" +val ktorver = "2.3.7" +val exposedver = "0.45.0" +val postgresver = "42.7.1" +val krontabver = "2.2.4" val mavenArtifact = "lilJudd" project.base.archivesName.set(mavenArtifact) @@ -105,8 +105,8 @@ dependencies { //Krontab shadow("dev.inmo:krontab:$krontabver") - shadow("io.ktor:ktor-client-core-jvm:2.3.5") - shadow("io.ktor:ktor-client-cio-jvm:2.3.5") + shadow("io.ktor:ktor-client-core-jvm:$ktorver") + shadow("io.ktor:ktor-client-cio-jvm:$ktorver") } From fc7edc0d0d05ede2bad6cec9e9e764b426535721 Mon Sep 17 00:00:00 2001 From: moonleay Date: Tue, 19 Dec 2023 10:28:49 +0100 Subject: [PATCH 2/3] feat!: improved MessageUtil Signed-off-by: moonleay --- .../net/moonleay/lilJudd/util/MessageUtil.kt | 74 +------------------ 1 file changed, 4 insertions(+), 70 deletions(-) diff --git a/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt b/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt index 6dfb545..3307f58 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt @@ -18,10 +18,7 @@ package net.moonleay.lilJudd.util -import com.kotlindiscord.kord.extensions.commands.Arguments -import com.kotlindiscord.kord.extensions.commands.application.slash.PublicSlashCommandContext -import com.kotlindiscord.kord.extensions.components.forms.ModalForm -import com.kotlindiscord.kord.extensions.types.respond +import dev.kord.core.behavior.UserBehavior import dev.kord.core.entity.Embed import dev.kord.rest.builder.message.EmbedBuilder import java.time.LocalDateTime @@ -30,44 +27,9 @@ import java.time.format.DateTimeFormatter object MessageUtil { private val dtf: DateTimeFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy @ HH:mm:ss") - ///Send an embedded message as a reply - suspend fun sendEmbedForPublicSlashCommand( - ctx: PublicSlashCommandContext, - color: EmbedColor, - title: String, - description: String - ) { - ctx.respond { - embeds.add( - getEmbed( - color, - title, - description, - ctx.user.asUser().username + "#" + ctx.user.asUser().discriminator - ) - ) - } - } - - ///Send an embedded message with an image as a reply - suspend fun sendEmbedForPublicSlashCommandWithImage( - ctx: PublicSlashCommandContext, - color: EmbedColor, - title: String, - description: String, - thumbnailUrl: String - ) { - ctx.respond { - embeds.add( - getEmbedWithImage( - color, - title, - description, - ctx.user.asUser().username + "#" + ctx.user.asUser().discriminator, - thumbnailUrl - ) - ) - } + suspend fun getFooter(u: UserBehavior? = null): String { + val now: LocalDateTime = LocalDateTime.now() + return ">" + dtf.format(now) + " - ${u?.asUser()?.username ?: "Automated Message"}" } ///Get a cloned embedded message @@ -101,20 +63,6 @@ object MessageUtil { return ebb } - fun getEmbedWithTableWithFooter( - color: EmbedColor, - title: String, - description: String, - values: Map>?, - footer: String - ): EmbedBuilder { - val ebb = getEmbedWithTable(color, title, description, values) - ebb.footer = EmbedBuilder.Footer() - ebb.footer!!.text = ">m.id/$footer" - return ebb - } - - ///Get an embedded msg with image, title and description fun getEmbedWithTable( color: EmbedColor, title: String, @@ -136,7 +84,6 @@ object MessageUtil { return ebb } - ///Get an embedded msg with title and description fun getEmbedSmall( color: EmbedColor, @@ -164,17 +111,4 @@ object MessageUtil { return ebb } - ///Get an embedded msg with image, title, description and a src - fun getEmbedWithImage( - color: EmbedColor, - title: String, - description: String, - source: String, - thumbnailUrl: String - ): EmbedBuilder { - val ebb = getEmbed(color, title, description, source) - ebb.thumbnail = EmbedBuilder.Thumbnail() - ebb.thumbnail!!.url = thumbnailUrl - return ebb - } } From a2dafa5c7229628cf887076342ac46a94634d795 Mon Sep 17 00:00:00 2001 From: moonleay Date: Tue, 19 Dec 2023 10:29:53 +0100 Subject: [PATCH 3/3] fix: fixed all exceptions, which were caused by upgrading dependencies Signed-off-by: moonleay --- .../buttons/matchplanner/AcceptEditButton.kt | 17 ++--- .../buttons/matchplanner/CancelEditButton.kt | 17 ++--- .../buttons/matchplanner/DeclineEditButton.kt | 17 ++--- .../timeplanner/IsAvailableEditButton.kt | 2 +- .../timeplanner/MaybeAvailableEditButton.kt | 2 +- .../timeplanner/NotAvailableEditButton.kt | 2 +- .../extensions/FeatureManageExtension.kt | 59 ++++++++++----- .../lilJudd/extensions/InfoExtension.kt | 23 +++--- .../lilJudd/extensions/MatchExtension.kt | 72 +++++++++++-------- .../extensions/SendPlannerExtension.kt | 55 ++++++++------ .../extensions/UpdateRolesExtension.kt | 41 +++++------ .../moonleay/lilJudd/features/TimeManager.kt | 69 ++++++++++-------- .../moonleay/lilJudd/jobs/StatusUpdater.kt | 2 +- 13 files changed, 218 insertions(+), 160 deletions(-) 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 4e04fa1..ffb7759 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/AcceptEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/AcceptEditButton.kt @@ -25,7 +25,8 @@ import dev.kord.core.entity.Guild import dev.kord.core.entity.User import dev.kord.core.entity.channel.MessageChannel import dev.kord.core.entity.interaction.ButtonInteraction -import dev.kord.rest.builder.message.modify.embed +import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.buttons.component.IEditButton import net.moonleay.lilJudd.data.database.repository.MatchPlanningDataRepository @@ -89,13 +90,13 @@ class AcceptEditButton() : IEditButton { if (shouldEditButton) { // update the message Bot.bot.kordRef.getChannelOf(interaction.channelId)!!.getMessage(m.id).edit { - this.embed { - this.color = eb.color - this.title = eb.title - this.description = eb.description - this.fields = eb.fields - this.footer = eb.footer - } + this.embed(fun EmbedBuilder.() { + color = eb.color + title = eb.title + description = eb.description + fields = eb.fields + footer = eb.footer + }) } } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/CancelEditButton.kt b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/CancelEditButton.kt index 348446c..12eaea1 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/CancelEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/CancelEditButton.kt @@ -25,7 +25,8 @@ import dev.kord.core.entity.Guild import dev.kord.core.entity.User import dev.kord.core.entity.channel.MessageChannel import dev.kord.core.entity.interaction.ButtonInteraction -import dev.kord.rest.builder.message.modify.embed +import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.buttons.component.IEditButton import net.moonleay.lilJudd.data.database.repository.MatchPlanningDataRepository @@ -62,14 +63,14 @@ class CancelEditButton : IEditButton { member.removeRole(role.id) } Bot.bot.kordRef.getChannelOf(interaction.channelId)!!.getMessage(m.id).edit { - this.embed { + this.embed(fun EmbedBuilder.() { val temp = EmbedUtil.replaceXWithYinValuesAtTable(user.id.value.toString(), "", m.embeds[0], 1) - this.color = temp.color - this.title = temp.title - this.description = temp.description - this.fields = temp.fields - this.footer = temp.footer - } + color = temp.color + title = temp.title + description = temp.description + fields = temp.fields + footer = temp.footer + }) } } } 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 93f6b36..12c8375 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/DeclineEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/matchplanner/DeclineEditButton.kt @@ -25,7 +25,8 @@ import dev.kord.core.entity.Guild import dev.kord.core.entity.User import dev.kord.core.entity.channel.MessageChannel import dev.kord.core.entity.interaction.ButtonInteraction -import dev.kord.rest.builder.message.modify.embed +import dev.kord.rest.builder.message.EmbedBuilder +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.buttons.component.IEditButton import net.moonleay.lilJudd.data.database.repository.MatchPlanningDataRepository @@ -89,13 +90,13 @@ class DeclineEditButton : IEditButton { if (shouldEditButton) { // update the message Bot.bot.kordRef.getChannelOf(interaction.channelId)!!.getMessage(m.id).edit { - this.embed { - this.color = eb.color - this.title = eb.title - this.description = eb.description - this.fields = eb.fields - this.footer = eb.footer - } + this.embed(fun EmbedBuilder.() { + color = eb.color + title = eb.title + description = eb.description + fields = eb.fields + footer = eb.footer + }) } } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/IsAvailableEditButton.kt b/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/IsAvailableEditButton.kt index 9dbae16..ccc67fd 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/IsAvailableEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/IsAvailableEditButton.kt @@ -24,7 +24,7 @@ import dev.kord.core.entity.Guild import dev.kord.core.entity.User import dev.kord.core.entity.channel.MessageChannel import dev.kord.core.entity.interaction.ButtonInteraction -import dev.kord.rest.builder.message.modify.embed +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.buttons.component.IEditButton import net.moonleay.lilJudd.features.AvailabilityManager diff --git a/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/MaybeAvailableEditButton.kt b/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/MaybeAvailableEditButton.kt index 01cf792..a8b174c 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/MaybeAvailableEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/MaybeAvailableEditButton.kt @@ -24,7 +24,7 @@ import dev.kord.core.entity.Guild import dev.kord.core.entity.User import dev.kord.core.entity.channel.MessageChannel import dev.kord.core.entity.interaction.ButtonInteraction -import dev.kord.rest.builder.message.modify.embed +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.buttons.component.IEditButton import net.moonleay.lilJudd.features.AvailabilityManager diff --git a/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/NotAvailableEditButton.kt b/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/NotAvailableEditButton.kt index ade9557..e5e8103 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/NotAvailableEditButton.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/buttons/timeplanner/NotAvailableEditButton.kt @@ -24,7 +24,7 @@ import dev.kord.core.entity.Guild import dev.kord.core.entity.User import dev.kord.core.entity.channel.MessageChannel import dev.kord.core.entity.interaction.ButtonInteraction -import dev.kord.rest.builder.message.modify.embed +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.buttons.component.IEditButton import net.moonleay.lilJudd.features.AvailabilityManager diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt index e09786c..ef1c52a 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt @@ -23,9 +23,9 @@ import com.kotlindiscord.kord.extensions.commands.application.slash.converters.i import com.kotlindiscord.kord.extensions.commands.converters.impl.channel import com.kotlindiscord.kord.extensions.extensions.Extension import com.kotlindiscord.kord.extensions.extensions.publicSlashCommand -import com.kotlindiscord.kord.extensions.types.respond import com.kotlindiscord.kord.extensions.utils.hasPermission import dev.kord.common.entity.Permission +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.extensions.component.EnableOrDisable import net.moonleay.lilJudd.features.component.FeatureEnum import net.moonleay.lilJudd.features.component.FeatureManager @@ -49,14 +49,16 @@ class FeatureManageExtension : Extension() { val u = this.user if (!u.asMember(this.guild!!.id).hasPermission(Permission.Administrator)) { this.respond { - embeds.add( - MessageUtil.getEmbed( - EmbedColor.ERROR, - "403: Forbidden", - "You cannot edit features, as you don't have the Administrator permission.", - u.asUser().username + "#" + u.asUser().discriminator - ) - ) + this.embed { + this.color = EmbedColor.ERROR.color + this.title = "403: Forbidden" + this.description = + "You cannot edit features, as you don't have the Administrator permission." + this.footer { + this.icon = u.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(u) + } + } } return@action } @@ -68,26 +70,45 @@ class FeatureManageExtension : Extension() { val f = FeatureManager.getFeature(args.feature) if (f == null) { this.respond { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.ERROR, - "404: Not Found", - "The feature you are trying to edit does not exist.", - u.asUser().username + "#" + u.asUser().discriminator - ) - ) + this.embed { + this.color = EmbedColor.ERROR.color + this.title = "404: Not Found" + this.description = "The feature you are trying to edit does not exist." + this.footer { + this.icon = u.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(u) + } + } } return@action } if (this.arguments.setStatus == EnableOrDisable.ENABLE) { + val enabled = f.enable(u, gID, cID, channel, args) this.respond { - this.embeds.add(f.enable(u, gID, cID, channel, args)) + this.embed { + this.color = enabled.color + this.title = enabled.title + this.description = enabled.description + this.footer { + this.icon = u.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(u) + } + } } return@action } + val disabled = f.disable(u, gID, cID, channel, args) this.respond { - this.embeds.add(f.disable(u, gID, cID, channel, args)) + this.embed { + this.color = disabled.color + this.title = disabled.title + this.description = disabled.description + this.footer { + this.icon = u.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(u) + } + } } } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt index 6445faf..4928043 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/InfoExtension.kt @@ -20,8 +20,8 @@ package net.moonleay.lilJudd.extensions import com.kotlindiscord.kord.extensions.extensions.Extension import com.kotlindiscord.kord.extensions.extensions.publicSlashCommand +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.util.EmbedColor -import net.moonleay.lilJudd.util.MessageUtil import net.moonleay.liljudd.build.BuildConstants class InfoExtension : Extension() { @@ -31,16 +31,17 @@ class InfoExtension : Extension() { name = "info" description = "Show infos about the bot" this.action { - MessageUtil.sendEmbedForPublicSlashCommand( - this, - EmbedColor.INFO, - "Lil' Judd", - "Lil' Judd ***v." + BuildConstants.version + "***\n" + - "Kord-Extensions ***v." + BuildConstants.kordVersion + "***\n" + - "Coroutines ***v." + BuildConstants.coroutinesVersion + "***\n" + - "Krontab ***v." + BuildConstants.krontabVersion + "***\n\n" + - "Splatoon 3 api data provided by splatoon3.ink" - ) + this.respond { + this.embed { + this.color = EmbedColor.INFO.color + this.title = "Li'l Judd" + this.description = "Li'l Judd ***v." + BuildConstants.version + "***\n" + + "Kord-Extensions ***v." + BuildConstants.kordVersion + "***\n" + + "Coroutines ***v." + BuildConstants.coroutinesVersion + "***\n" + + "Krontab ***v." + BuildConstants.krontabVersion + "***\n\n" + + "Splatoon 3 api data provided by splatoon3.ink" + } + } } } } diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt index 118d368..e825baa 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt @@ -23,9 +23,9 @@ import com.kotlindiscord.kord.extensions.commands.application.slash.converters.i import com.kotlindiscord.kord.extensions.commands.converters.impl.string import com.kotlindiscord.kord.extensions.extensions.Extension import com.kotlindiscord.kord.extensions.extensions.publicSlashCommand -import com.kotlindiscord.kord.extensions.types.respond import dev.kord.core.behavior.createRole -import dev.kord.rest.builder.message.create.actionRow +import dev.kord.rest.builder.message.actionRow +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.data.database.entry.MatchPlanningDataData import net.moonleay.lilJudd.data.database.repository.MatchPlanningDataRepository import net.moonleay.lilJudd.extensions.component.MatchTypes @@ -55,15 +55,16 @@ class MatchExtension : Extension() { val opponent = args.opponent if (!TimeUtil.validateDateString(args.timeStamp)) { this.respond { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.ERROR, - "400: Bad Request", - "The given timestamp is invalid.\n" + - "Please use the format \"dd.MM.yyyy HH:mm\".", - m.asUser().username - ) - ) + this.embed { + this.color = EmbedColor.ERROR.color + this.title = "400: Bad Request" + this.description = "The given timestamp is invalid.\n" + + "Please use the format \"dd.MM.yyyy HH:mm\"." + this.footer { + this.icon = m.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(m.asUser()) + } + } } return@action } @@ -80,32 +81,41 @@ class MatchExtension : Extension() { // Check if the role was created successfully if (role == null) { this.respond { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.ERROR, - "500: Internal Error", - "Could not find created role.\n" + - "It seems, that said role could not be created.", - m.asUser().username - ) - ) + this.embed { + this.color = EmbedColor.ERROR.color + this.title = "500: Internal Error" + this.description = "Could not find created role.\n" + + "It seems, that said role could not be created." + this.footer { + this.icon = m.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(m.asUser()) + } + } } return@action } val msg = this.respond { - this.embeds.add( - MessageUtil.getEmbedWithTable( - EmbedColor.INFO, - args.matchType.readableName, - "***Vs. $opponent***\n" + - "At ${args.timeStamp}\n" + - "Registered by ${m.mention}", - mapOf( - "Signed up" to listOf(), - "Unavailable" to listOf(), - ) + val eb = MessageUtil.getEmbedWithTable( + EmbedColor.INFO, + args.matchType.readableName, + "***Vs. $opponent***\n" + + "At ${args.timeStamp}\n" + + "Registered by ${m.mention}", + mapOf( + "Signed up" to listOf(), + "Unavailable" to listOf(), ) ) + this.embed { + this.color = eb.color + this.title = eb.title + this.description = eb.description + this.fields = eb.fields + this.footer { + this.icon = m.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(m.asUser()) + } + } this.actionRow { this.components.addAll(EmbedUtil.getMatchButtons().components) diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt index 781de2c..87a6abb 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt @@ -20,12 +20,13 @@ package net.moonleay.lilJudd.extensions import com.kotlindiscord.kord.extensions.extensions.Extension import com.kotlindiscord.kord.extensions.extensions.publicSlashCommand -import com.kotlindiscord.kord.extensions.types.respond import com.kotlindiscord.kord.extensions.utils.hasPermission import dev.kord.common.entity.Permission import dev.kord.core.behavior.channel.createMessage -import dev.kord.rest.builder.message.create.actionRow +import dev.kord.rest.builder.message.actionRow +import dev.kord.rest.builder.message.embed import kotlinx.coroutines.delay +import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.data.database.entry.TimePlanningMessagesData import net.moonleay.lilJudd.data.database.repository.TimePlanningMessagesRepository import net.moonleay.lilJudd.util.* @@ -64,30 +65,40 @@ class SendPlannerExtension : Extension() { .withHour(4) .withMinute(0).withSecond(0) c.createMessage { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.INFO, - "Time Planning Feature", - "Do you have time on the following Days?", - "Automated Message" - ) - ) + this.embed { + this.color = EmbedColor.INFO.color + this.title = "Time Planning Feature" + this.description = "Do you have time on the following Days?" + this.footer { + this.icon = Bot.bot.kordRef.getSelf().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter() + } + } } delay(1000) repeat(7) { - val msg = c.createMessage { - this.embeds.add( - MessageUtil.getEmbedWithTable( - EmbedColor.INFO, - "", - "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", - mapOf( - "Is available" to listOf(), - "May be available" to listOf(), - "Is not available" to listOf() - ) - ) + val eb = MessageUtil.getEmbedWithTable( + EmbedColor.INFO, + "", + "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", + mapOf( + "Is available" to listOf(), + "May be available" to listOf(), + "Is not available" to listOf() ) + ) + + val msg = c.createMessage { + this.embed { + this.color = eb.color + this.title = eb.title + this.description = eb.description + this.fields = eb.fields + this.footer { + this.icon = Bot.bot.kordRef.getSelf().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter() + } + } this.actionRow { this.components.addAll(EmbedUtil.getTimePlannerButtons().components) diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt index be6ba80..8d8e986 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.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 com.kotlindiscord.kord.extensions.types.respond import com.kotlindiscord.kord.extensions.utils.hasPermission import dev.kord.common.entity.Permission +import dev.kord.rest.builder.message.embed import net.moonleay.lilJudd.features.AvailabilityManager import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.Logger @@ -42,30 +42,31 @@ class UpdateRolesExtension : Extension() { .hasPermission(Permission.Administrator) ) { this.respond { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.ERROR, - "403: Forbidden", - "You need to be an administrator to use this command.", - user.asUser().username + "#" + user.asUser().discriminator - ) - ) + this.embed { + this.color = EmbedColor.ERROR.color + this.title = "403: Forbidden" + this.description = + "You cannot update roles, as you don't have the Administrator permission." + this.footer { + this.icon = user.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(user) + } + } } return@action } this.respond { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.SUCCESS, - "200: Success", - "Updating roles.\n" + - "This may take a while, please be patient.", - user.asUser().username + "#" + user.asUser().discriminator - ) - ) + this.embed { + this.color = EmbedColor.INFO.color + this.title = "200: Success" + this.description = "Updating roles.\n" + + "This may take a while, please be patient." + this.footer { + this.icon = user.asUser().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter(user) + } + } } - - // -- below here is the code of the cronjob -- Logger.out("Starting to update roles...") AvailabilityManager.updateInChannel(this.channel.id) diff --git a/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt b/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt index ec073ac..87018df 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt @@ -26,7 +26,8 @@ import dev.kord.core.behavior.channel.createMessage import dev.kord.core.entity.channel.Channel import dev.kord.core.entity.channel.MessageChannel import dev.kord.rest.builder.message.EmbedBuilder -import dev.kord.rest.builder.message.create.actionRow +import dev.kord.rest.builder.message.actionRow +import dev.kord.rest.builder.message.embed import kotlinx.coroutines.delay import net.moonleay.lilJudd.Bot import net.moonleay.lilJudd.data.database.entry.TimePlanningChannelsData @@ -78,43 +79,53 @@ object TimeManager : IFeature { c.createMessage { this.content = "The weekly planning starts now <@&${Snowflake(targetedRoles[ch2]?.wantsToBeNotifiedID!!)}>" - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.INFO, - "Time Planning Feature", - "Do you have time on the following Days?", - "Automated Message" - ) - ) + this.embed { + this.color = EmbedColor.INFO.color + this.title = "Time Planning Feature" + this.description = "Do you have time on the following Days?" + this.footer { + this.icon = Bot.bot.kordRef.getSelf().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter() + } + } } } else { c.createMessage { - this.embeds.add( - MessageUtil.getEmbed( - EmbedColor.INFO, - "Time Planning Feature", - "Do you have time on the following Days?", - "Automated Message" - ) - ) + this.embed { + this.color = EmbedColor.INFO.color + this.title = "Time Planning Feature" + this.description = "Do you have time on the following Days?" + this.footer { + this.icon = Bot.bot.kordRef.getSelf().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter() + } + } } } delay(2000) var then = ZonedDateTime.now(ZoneId.of("Europe/Berlin")).withHour(4).withMinute(0).withSecond(0) repeat(7) { - val msg = c.createMessage { - this.embeds.add( - MessageUtil.getEmbedWithTable( - EmbedColor.INFO, - "", - "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", - mapOf( - "Is available" to listOf(), - "May be available" to listOf(), - "Is not available" to listOf() - ) - ) + val eb = MessageUtil.getEmbedWithTable( + EmbedColor.INFO, + "", + "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", + mapOf( + "Is available" to listOf(), + "May be available" to listOf(), + "Is not available" to listOf() ) + ) + val msg = c.createMessage { + this.embed { + this.color = eb.color + this.title = eb.title + this.description = eb.description + this.fields = eb.fields + this.footer { + this.icon = Bot.bot.kordRef.getSelf().avatar?.cdnUrl?.toUrl() + this.text = MessageUtil.getFooter() + } + } this.actionRow { this.components.addAll(EmbedUtil.getTimePlannerButtons().components) diff --git a/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt b/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt index 9f5688d..762b498 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/jobs/StatusUpdater.kt @@ -41,7 +41,7 @@ object StatusUpdater : ICronjob { private var statusList = listOf() private var index = 0 - // I h8 this job. I'll recode this someday. + // I h8 this cronjob. I'll recode this someday. override suspend fun jobFunction() { if (index >= statusList.size) { index = 0