Compare commits
3 commits
32da9ac7af
...
a2dafa5c72
Author | SHA1 | Date | |
---|---|---|---|
a2dafa5c72 | |||
fc7edc0d0d | |||
b2c43e2c04 |
15 changed files with 229 additions and 237 deletions
|
@ -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")
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<Arguments, ModalForm>,
|
||||
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<Arguments, ModalForm>,
|
||||
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<String, List<String>>?,
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue