fix: fixed all exceptions, which were caused by upgrading dependencies

chore!: rewrote all embeds as a result

Signed-off-by: moonleay <contact@moonleay.net>
This commit is contained in:
moonleay 2023-12-19 10:29:53 +01:00
parent fc7edc0d0d
commit 5581f8f348
Signed by: moonleay
GPG key ID: 82667543CCD715FB
13 changed files with 218 additions and 160 deletions

View file

@ -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<MessageChannel>(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
})
}
}
}

View file

@ -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<MessageChannel>(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
})
}
}
}

View file

@ -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<MessageChannel>(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
})
}
}
}

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)
}
}
}
}
}

View file

@ -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"
}
}
}
}
}

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -41,7 +41,7 @@ object StatusUpdater : ICronjob {
private var statusList = listOf<String>()
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