diff --git a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt index 64e0314..6f6d47f 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/Bot.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/Bot.kt @@ -19,6 +19,7 @@ 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 @@ -38,7 +39,6 @@ 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,10 +146,9 @@ object Bot { response.respond { this.embeds = mutableListOf( MessageUtil.getEmbed( - EmbedColor.ERROR, - "404: Not Found", - "Could not find button with id \"${inter.componentId}\"." + - "\nPlease report this.", + Color(0xE0311A), + "Error", + "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 e09786c..eac08c6 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( - EmbedColor.ERROR, + Color(0xE0311A), "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( - EmbedColor.ERROR, + Color(0xE0311A), "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 40787d4..3be70f7 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/MatchExtension.kt @@ -25,6 +25,7 @@ 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 @@ -32,7 +33,6 @@ 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( - EmbedColor.INFO, + Color(0X4C4645), 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( - EmbedColor.ERROR, + Color(0xE0311A), "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 fd293d9..d4b8808 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/extensions/SendPlannerExtension.kt @@ -22,12 +22,16 @@ 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.* +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 org.jetbrains.exposed.sql.insert import org.jetbrains.exposed.sql.transactions.transaction import java.time.ZoneId @@ -67,7 +71,7 @@ class SendPlannerExtension : Extension() { c.createMessage { this.embeds.add( MessageUtil.getEmbed( - EmbedColor.INFO, + Color(0X4C4645), "Time Planning Feature", "Do you have time on the following Days?", "Automated Message" @@ -79,7 +83,7 @@ class SendPlannerExtension : Extension() { val msg = c.createMessage { this.embeds.add( MessageUtil.getEmbedWithTable( - EmbedColor.INFO, + Color(0X4C4645), "", "${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 be6ba80..65d5430 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,30 +41,17 @@ class UpdateRolesExtension : Extension() { if (!this.member!!.asMember(this.guild!!.id) .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 - ) - ) + val res = this.respond { + this.content = "You need to be an administrator to use this command." } + res.delete() 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 - ) - ) + val res = this.respond { + this.content = "OK." } + // -- 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 3554f72..c116c02 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, - EmbedColor.INFO, + Color(0x52E01A), "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 f883347..a6b2d3a 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/features/AvailabilityManager.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/features/AvailabilityManager.kt @@ -21,6 +21,7 @@ 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 @@ -37,7 +38,10 @@ 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.* +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 org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.transactions.transaction @@ -260,7 +264,7 @@ object AvailabilityManager : IFeature { } return MessageUtil.getEmbed( - EmbedColor.SUCCESS, + Color(0x52E01A), "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 @@ -269,7 +273,7 @@ object AvailabilityManager : IFeature { // They exist, do not add them return MessageUtil.getEmbed( - EmbedColor.ERROR, + Color(0xE0311A), "403: Forbidden", "The feature is already enabled in this channel.", u.asUser().username + "#" + u.asUser().discriminator @@ -314,7 +318,7 @@ object AvailabilityManager : IFeature { } } return MessageUtil.getEmbed( - EmbedColor.SUCCESS, + Color(0x52E019), "200: Success", "The feature was disabled.", u.asUser().username + "#" + u.asUser().discriminator @@ -322,7 +326,7 @@ object AvailabilityManager : IFeature { } // not in db, do nothing return MessageUtil.getEmbed( - EmbedColor.ERROR, + Color(0xE0311A), "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 677520d..2058c11 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/features/TimeManager.kt @@ -20,6 +20,7 @@ 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 @@ -36,7 +37,10 @@ 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.* +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 org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq import org.jetbrains.exposed.sql.transactions.transaction @@ -97,7 +101,7 @@ object TimeManager : IFeature { "The weekly planning starts now <@&${Snowflake(roleMap[ch]?.wantstobenotifid!!)}>" this.embeds.add( MessageUtil.getEmbed( - EmbedColor.INFO, + Color(0X4C4645), "Time Planning Feature", "Do you have time on the following Days?", "Automated Message" @@ -108,7 +112,7 @@ object TimeManager : IFeature { c.createMessage { this.embeds.add( MessageUtil.getEmbed( - EmbedColor.INFO, + Color(0X4C4645), "Time Planning Feature", "Do you have time on the following Days?", "Automated Message" @@ -122,7 +126,7 @@ object TimeManager : IFeature { val msg = c.createMessage { this.embeds.add( MessageUtil.getEmbedWithTable( - EmbedColor.INFO, + Color(0X4C4645), "", "${then.dayOfWeek.name}, ${then.dayOfMonth}.${then.monthValue}.${then.year} /${it + 1}. weekday", mapOf( @@ -180,14 +184,14 @@ object TimeManager : IFeature { } get TimePlanningChannels.id } return MessageUtil.getEmbed( - EmbedColor.SUCCESS, + Color(0x52E01A), "200: Success", "The feature was enabled in channel ${args.channel.data.name.value}", u.asUser().username + "#" + u.asUser().discriminator ) } return MessageUtil.getEmbed( - EmbedColor.ERROR, + Color(0xE0311A), "403: Forbidden", "The feature is already enabled in this channel.", u.asUser().username + "#" + u.asUser().discriminator @@ -222,7 +226,7 @@ object TimeManager : IFeature { } } return MessageUtil.getEmbed( - EmbedColor.SUCCESS, + Color(0x52E019), "200: Success", "The feature was disabled.", u.asUser().username + "#" + u.asUser().discriminator @@ -230,7 +234,7 @@ object TimeManager : IFeature { } // Do nothing; not in db return MessageUtil.getEmbed( - EmbedColor.ERROR, + Color(0xE0311A), "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/util/EmbedColor.kt b/src/main/kotlin/net/moonleay/lilJudd/util/EmbedColor.kt deleted file mode 100644 index cb3e983..0000000 --- a/src/main/kotlin/net/moonleay/lilJudd/util/EmbedColor.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * lilJudd - * Copyright (C) 2023 moonleay - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package net.moonleay.lilJudd.util - -import dev.kord.common.Color - -enum class EmbedColor(val color: Color) { - ERROR(Color(0xE0311A)), - WARNING(Color(0xFFA500)), - SUCCESS(Color(0x52E01A)), - INFO(Color(0x4C4645)), -} diff --git a/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt b/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt index 6dfb545..0e34571 100644 --- a/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt +++ b/src/main/kotlin/net/moonleay/lilJudd/util/MessageUtil.kt @@ -22,6 +22,7 @@ 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 @@ -33,7 +34,7 @@ object MessageUtil { ///Send an embedded message as a reply suspend fun sendEmbedForPublicSlashCommand( ctx: PublicSlashCommandContext, - color: EmbedColor, + color: Color, title: String, description: String ) { @@ -52,7 +53,7 @@ object MessageUtil { ///Send an embedded message with an image as a reply suspend fun sendEmbedForPublicSlashCommandWithImage( ctx: PublicSlashCommandContext, - color: EmbedColor, + color: Color, title: String, description: String, thumbnailUrl: String @@ -102,7 +103,7 @@ object MessageUtil { } fun getEmbedWithTableWithFooter( - color: EmbedColor, + color: Color, title: String, description: String, values: Map>?, @@ -116,7 +117,7 @@ object MessageUtil { ///Get an embedded msg with image, title and description fun getEmbedWithTable( - color: EmbedColor, + color: Color, title: String, description: String, values: Map>? @@ -139,20 +140,20 @@ object MessageUtil { ///Get an embedded msg with title and description fun getEmbedSmall( - color: EmbedColor, + color: Color, title: String, description: String ): EmbedBuilder { val ebb = EmbedBuilder() ebb.title = title ebb.description = description - ebb.color = color.color + ebb.color = color return ebb } ///Get an embedded msg with title, description and a src fun getEmbed( - color: EmbedColor, + color: Color, title: String, description: String, source: String @@ -166,7 +167,7 @@ object MessageUtil { ///Get an embedded msg with image, title, description and a src fun getEmbedWithImage( - color: EmbedColor, + color: Color, title: String, description: String, source: String,