From dcdb5c6e562873b375f3cd035b7f753ee3475839 Mon Sep 17 00:00:00 2001 From: moonleay Date: Thu, 14 Sep 2023 12:27:53 +0200 Subject: [PATCH 1/3] feat: added EmbedColor Signed-off-by: moonleay --- .../net/moonleay/lilJudd/util/EmbedColor.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/kotlin/net/moonleay/lilJudd/util/EmbedColor.kt diff --git a/src/main/kotlin/net/moonleay/lilJudd/util/EmbedColor.kt b/src/main/kotlin/net/moonleay/lilJudd/util/EmbedColor.kt new file mode 100644 index 0000000..cb3e983 --- /dev/null +++ b/src/main/kotlin/net/moonleay/lilJudd/util/EmbedColor.kt @@ -0,0 +1,28 @@ +/* + * 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.util + +import dev.kord.common.Color + +enum class EmbedColor(val color: Color) { + ERROR(Color(0xE0311A)), + WARNING(Color(0xFFA500)), + SUCCESS(Color(0x52E01A)), + INFO(Color(0x4C4645)), +} From 8d14597a38f3e1c4383de37ac984971c9da3f1c2 Mon Sep 17 00:00:00 2001 From: moonleay Date: Thu, 14 Sep 2023 12:34:27 +0200 Subject: [PATCH 2/3] feat: make embed helper functions use EmbedColor instead of color Signed-off-by: moonleay --- .../net/moonleay/lilJudd/util/MessageUtil.kt | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt b/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt index 0e34571..6dfb545 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt @@ -22,7 +22,6 @@ 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.common.Color import dev.kord.core.entity.Embed import dev.kord.rest.builder.message.EmbedBuilder import java.time.LocalDateTime @@ -34,7 +33,7 @@ object MessageUtil { ///Send an embedded message as a reply suspend fun sendEmbedForPublicSlashCommand( ctx: PublicSlashCommandContext, - color: Color, + color: EmbedColor, title: String, description: String ) { @@ -53,7 +52,7 @@ object MessageUtil { ///Send an embedded message with an image as a reply suspend fun sendEmbedForPublicSlashCommandWithImage( ctx: PublicSlashCommandContext, - color: Color, + color: EmbedColor, title: String, description: String, thumbnailUrl: String @@ -103,7 +102,7 @@ object MessageUtil { } fun getEmbedWithTableWithFooter( - color: Color, + color: EmbedColor, title: String, description: String, values: Map>?, @@ -117,7 +116,7 @@ object MessageUtil { ///Get an embedded msg with image, title and description fun getEmbedWithTable( - color: Color, + color: EmbedColor, title: String, description: String, values: Map>? @@ -140,20 +139,20 @@ object MessageUtil { ///Get an embedded msg with title and description fun getEmbedSmall( - color: Color, + color: EmbedColor, title: String, description: String ): EmbedBuilder { val ebb = EmbedBuilder() ebb.title = title ebb.description = description - ebb.color = color + ebb.color = color.color return ebb } ///Get an embedded msg with title, description and a src fun getEmbed( - color: Color, + color: EmbedColor, title: String, description: String, source: String @@ -167,7 +166,7 @@ object MessageUtil { ///Get an embedded msg with image, title, description and a src fun getEmbedWithImage( - color: Color, + color: EmbedColor, title: String, description: String, source: String, From caa5d49baddaebb268e74c329333b10a1cddc324 Mon Sep 17 00:00:00 2001 From: moonleay Date: Thu, 14 Sep 2023 12:36:19 +0200 Subject: [PATCH 3/3] fix!: Changed all colors to EmbedColor Signed-off-by: moonleay --- src/main/kotlin/net/moonleay/lilJudd/Bot.kt | 9 +++--- .../extensions/FeatureManageExtension.kt | 6 ++-- .../lilJudd/extensions/MatchExtension.kt | 6 ++-- .../extensions/SendPlannerExtension.kt | 10 ++----- .../extensions/UpdateRolesExtension.kt | 29 ++++++++++++++----- .../lilJudd/extensions/VersionExtension.kt | 4 +-- .../lilJudd/features/AvailabilityManager.kt | 14 ++++----- .../moonleay/lilJudd/features/TimeManager.kt | 20 +++++-------- 8 files changed, 50 insertions(+), 48 deletions(-) diff --git a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt index 6f6d47f..64e0314 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt @@ -19,7 +19,6 @@ package net.moonleay.lilJudd import com.kotlindiscord.kord.extensions.ExtensibleBot -import dev.kord.common.Color import dev.kord.common.entity.PresenceStatus import dev.kord.core.behavior.interaction.response.respond import dev.kord.core.event.gateway.ReadyEvent @@ -39,6 +38,7 @@ 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.util.EmbedColor import net.moonleay.lilJudd.util.Logger import net.moonleay.lilJudd.util.MessageUtil import kotlin.system.exitProcess @@ -146,9 +146,10 @@ object Bot { response.respond { this.embeds = mutableListOf( MessageUtil.getEmbed( - Color(0xE0311A), - "Error", - "Could not find button with id \"${inter.componentId}\".\nPlease report this.", + EmbedColor.ERROR, + "404: Not Found", + "Could not find button with id \"${inter.componentId}\"." + + "\nPlease report this.", u.asUser().username + "#" + u.asUser().discriminator ) ) diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt index eac08c6..e09786c 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/FeatureManageExtension.kt @@ -25,11 +25,11 @@ 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.Color import dev.kord.common.entity.Permission import net.moonleay.lilJudd.extensions.component.EnableOrDisable import net.moonleay.lilJudd.features.component.FeatureEnum import net.moonleay.lilJudd.features.component.FeatureManager +import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.Logger import net.moonleay.lilJudd.util.MessageUtil @@ -51,7 +51,7 @@ class FeatureManageExtension : Extension() { this.respond { embeds.add( MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "403: Forbidden", "You cannot edit features, as you don't have the Administrator permission.", u.asUser().username + "#" + u.asUser().discriminator @@ -70,7 +70,7 @@ class FeatureManageExtension : Extension() { this.respond { this.embeds.add( MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "404: Not Found", "The feature you are trying to edit does not exist.", u.asUser().username + "#" + u.asUser().discriminator diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt index 3be70f7..40787d4 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt @@ -25,7 +25,6 @@ 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.common.Color import dev.kord.core.behavior.channel.createMessage import dev.kord.core.behavior.createRole import dev.kord.rest.builder.message.create.actionRow @@ -33,6 +32,7 @@ import net.moonleay.lilJudd.data.tables.MatchPlanningData import net.moonleay.lilJudd.extensions.component.MatchTypes import net.moonleay.lilJudd.jobs.MatchJob import net.moonleay.lilJudd.jobs.component.JobManager +import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.EmbedUtil import net.moonleay.lilJudd.util.MessageUtil import net.moonleay.lilJudd.util.TimeUtil @@ -60,7 +60,7 @@ class MatchExtension : Extension() { val msg = this.respond { this.embeds.add( MessageUtil.getEmbedWithTable( - Color(0X4C4645), + EmbedColor.INFO, args.matchType.readableName, "***Vs. $opponent***\n" + "At ${args.timeStamp}\n" + @@ -90,7 +90,7 @@ class MatchExtension : Extension() { this.channel.createMessage { this.embeds.add( MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "500: Internal Error", "Could not find created role.\n" + "It seems, that said role could not be created.", diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt index d4b8808..fd293d9 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt @@ -22,16 +22,12 @@ 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.Color import dev.kord.common.entity.Permission import dev.kord.core.behavior.channel.createMessage import dev.kord.rest.builder.message.create.actionRow import kotlinx.coroutines.delay import net.moonleay.lilJudd.data.tables.TimePlanningMessages -import net.moonleay.lilJudd.util.EmbedUtil -import net.moonleay.lilJudd.util.Logger -import net.moonleay.lilJudd.util.MessageUtil -import net.moonleay.lilJudd.util.TimeUtil +import net.moonleay.lilJudd.util.* import org.jetbrains.exposed.sql.insert import org.jetbrains.exposed.sql.transactions.transaction import java.time.ZoneId @@ -71,7 +67,7 @@ class SendPlannerExtension : Extension() { c.createMessage { this.embeds.add( MessageUtil.getEmbed( - Color(0X4C4645), + EmbedColor.INFO, "Time Planning Feature", "Do you have time on the following Days?", "Automated Message" @@ -83,7 +79,7 @@ class SendPlannerExtension : Extension() { val msg = c.createMessage { this.embeds.add( MessageUtil.getEmbedWithTable( - Color(0X4C4645), + EmbedColor.INFO, "", "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", mapOf( diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt index 65d5430..be6ba80 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/UpdateRolesExtension.kt @@ -23,16 +23,16 @@ 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.gateway.PrivilegedIntent import net.moonleay.lilJudd.features.AvailabilityManager +import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.Logger +import net.moonleay.lilJudd.util.MessageUtil class UpdateRolesExtension : Extension() { override val name = "updateroles" override val allowApplicationCommandInDMs: Boolean get() = false - @OptIn(PrivilegedIntent::class) override suspend fun setup() { publicSlashCommand() { name = "updateroles" @@ -41,17 +41,30 @@ class UpdateRolesExtension : Extension() { if (!this.member!!.asMember(this.guild!!.id) .hasPermission(Permission.Administrator) ) { - val res = this.respond { - this.content = "You need to be an administrator to use this command." + 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 + ) + ) } - res.delete() return@action } - val res = this.respond { - this.content = "OK." + 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 + ) + ) } - // -- below here is the code of the cronjob -- Logger.out("Starting to update roles...") diff --git a/src/main/kotlin/net/moonleay/lilJudd/extensions/VersionExtension.kt b/src/main/kotlin/net/moonleay/lilJudd/extensions/VersionExtension.kt index c116c02..3554f72 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/VersionExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/VersionExtension.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.common.Color import net.moonleay.botendo.build.BuildConstants +import net.moonleay.lilJudd.util.EmbedColor import net.moonleay.lilJudd.util.MessageUtil class VersionExtension : Extension() { @@ -33,7 +33,7 @@ class VersionExtension : Extension() { this.action { MessageUtil.sendEmbedForPublicSlashCommand( this, - Color(0x52E01A), + EmbedColor.INFO, "Lil' Judd", "Lil' Judd ***v." + BuildConstants.version + "***\n" + "Kord-Extensions ***v." + BuildConstants.kordVersion + "***\n" + diff --git a/src/main/kotlin/net/moonleay/lilJudd/features/AvailabilityManager.kt b/src/main/kotlin/net/moonleay/lilJudd/features/AvailabilityManager.kt index a6b2d3a..f883347 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/features/AvailabilityManager.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/features/AvailabilityManager.kt @@ -21,7 +21,6 @@ package net.moonleay.lilJudd.features import com.kotlindiscord.kord.extensions.utils.isNullOrBot import dev.inmo.krontab.buildSchedule import dev.inmo.krontab.doInfinity -import dev.kord.common.Color import dev.kord.common.entity.Snowflake import dev.kord.core.behavior.UserBehavior import dev.kord.core.behavior.createRole @@ -38,10 +37,7 @@ import net.moonleay.lilJudd.data.tables.TimePlanningMessages import net.moonleay.lilJudd.extensions.FeatureManageExtension import net.moonleay.lilJudd.features.component.FeatureEnum import net.moonleay.lilJudd.features.component.IFeature -import net.moonleay.lilJudd.util.EmbedUtil -import net.moonleay.lilJudd.util.Logger -import net.moonleay.lilJudd.util.MessageUtil -import net.moonleay.lilJudd.util.TimeUtil +import net.moonleay.lilJudd.util.* import org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.transactions.transaction @@ -264,7 +260,7 @@ object AvailabilityManager : IFeature { } return MessageUtil.getEmbed( - Color(0x52E01A), + EmbedColor.SUCCESS, "200: Success", "The feature was enabled in channel ${args.channel.data.name.value} with roles ${hasTimeRole.mention} & ${wantsNotifsRole.mention}.", u.asUser().username + "#" + u.asUser().discriminator @@ -273,7 +269,7 @@ object AvailabilityManager : IFeature { // They exist, do not add them return MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "403: Forbidden", "The feature is already enabled in this channel.", u.asUser().username + "#" + u.asUser().discriminator @@ -318,7 +314,7 @@ object AvailabilityManager : IFeature { } } return MessageUtil.getEmbed( - Color(0x52E019), + EmbedColor.SUCCESS, "200: Success", "The feature was disabled.", u.asUser().username + "#" + u.asUser().discriminator @@ -326,7 +322,7 @@ object AvailabilityManager : IFeature { } // not in db, do nothing return MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "403: Forbidden", "The feature is already disabled in this channel.", u.asUser().username + "#" + u.asUser().discriminator diff --git a/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt b/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt index 2058c11..677520d 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt @@ -20,7 +20,6 @@ package net.moonleay.lilJudd.features import dev.inmo.krontab.buildSchedule import dev.inmo.krontab.doInfinity -import dev.kord.common.Color import dev.kord.common.entity.Snowflake import dev.kord.core.behavior.UserBehavior import dev.kord.core.behavior.channel.createMessage @@ -37,10 +36,7 @@ import net.moonleay.lilJudd.data.tables.TimePlanningMessages import net.moonleay.lilJudd.extensions.FeatureManageExtension import net.moonleay.lilJudd.features.component.FeatureEnum import net.moonleay.lilJudd.features.component.IFeature -import net.moonleay.lilJudd.util.EmbedUtil -import net.moonleay.lilJudd.util.Logger -import net.moonleay.lilJudd.util.MessageUtil -import net.moonleay.lilJudd.util.TimeUtil +import net.moonleay.lilJudd.util.* import org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.transactions.transaction @@ -101,7 +97,7 @@ object TimeManager : IFeature { "The weekly planning starts now <@&${Snowflake(roleMap[ch]?.wantstobenotifid!!)}>" this.embeds.add( MessageUtil.getEmbed( - Color(0X4C4645), + EmbedColor.INFO, "Time Planning Feature", "Do you have time on the following Days?", "Automated Message" @@ -112,7 +108,7 @@ object TimeManager : IFeature { c.createMessage { this.embeds.add( MessageUtil.getEmbed( - Color(0X4C4645), + EmbedColor.INFO, "Time Planning Feature", "Do you have time on the following Days?", "Automated Message" @@ -126,7 +122,7 @@ object TimeManager : IFeature { val msg = c.createMessage { this.embeds.add( MessageUtil.getEmbedWithTable( - Color(0X4C4645), + EmbedColor.INFO, "", "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", mapOf( @@ -184,14 +180,14 @@ object TimeManager : IFeature { } get TimePlanningChannels.id } return MessageUtil.getEmbed( - Color(0x52E01A), + EmbedColor.SUCCESS, "200: Success", "The feature was enabled in channel ${args.channel.data.name.value}", u.asUser().username + "#" + u.asUser().discriminator ) } return MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "403: Forbidden", "The feature is already enabled in this channel.", u.asUser().username + "#" + u.asUser().discriminator @@ -226,7 +222,7 @@ object TimeManager : IFeature { } } return MessageUtil.getEmbed( - Color(0x52E019), + EmbedColor.SUCCESS, "200: Success", "The feature was disabled.", u.asUser().username + "#" + u.asUser().discriminator @@ -234,7 +230,7 @@ object TimeManager : IFeature { } // Do nothing; not in db return MessageUtil.getEmbed( - Color(0xE0311A), + EmbedColor.ERROR, "403: Forbidden", "The feature is already disabled in this channel.", u.asUser().username + "#" + u.asUser().discriminator