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
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)),
+}
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,