Embeds now consistently show the current time
Fixes #13. Thanks to CommanderLook for pointing this out.
This commit is contained in:
parent
b47dc34ff0
commit
911707a680
|
@ -3,7 +3,6 @@ package moe.kageru.kagebot
|
|||
import org.javacord.api.DiscordApi
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
|
||||
object Globals {
|
||||
lateinit var api: DiscordApi
|
||||
val commandCounter: AtomicInteger = AtomicInteger(0)
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package moe.kageru.kagebot
|
||||
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import org.javacord.api.entity.channel.TextChannel
|
||||
import org.javacord.api.entity.message.Message
|
||||
import org.javacord.api.entity.message.MessageAuthor
|
||||
import org.javacord.api.entity.message.embed.EmbedBuilder
|
||||
import org.javacord.api.entity.user.User
|
||||
import java.util.concurrent.CompletableFuture
|
||||
|
||||
object MessageUtil {
|
||||
fun mention(user: MessageAuthor): String {
|
||||
|
@ -17,10 +20,22 @@ object MessageUtil {
|
|||
fun getEmbedBuilder(): EmbedBuilder {
|
||||
val builder = EmbedBuilder()
|
||||
Config.server.icon.ifPresent { builder.setThumbnail(it) }
|
||||
return builder.setColor(Config.systemConfig.color).setTimestampToNow()
|
||||
return builder.setColor(Config.systemConfig.color)
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Send and embed and add the current time to it.
|
||||
* The time is not set in [getEmbedBuilder] because of https://git.kageru.moe/kageru/discord-kagebot/issues/13.
|
||||
*/
|
||||
fun sendEmbed(target: TextChannel, embed: EmbedBuilder): CompletableFuture<Message> {
|
||||
return target.sendMessage(embed.setTimestampToNow())
|
||||
}
|
||||
|
||||
fun sendEmbed(target: User, embed: EmbedBuilder): CompletableFuture<Message> {
|
||||
return target.sendMessage(embed.setTimestampToNow())
|
||||
}
|
||||
|
||||
/**
|
||||
* The reason we use a list here (rather than a map) is that maps would not retain the order specified in the config.
|
||||
* I tried LinkedHashMaps, but those don’t seem to work either.
|
||||
*/
|
||||
|
|
|
@ -95,7 +95,7 @@ object Util {
|
|||
op()
|
||||
} catch (e: Exception) {
|
||||
log.warning("An uncaught exception occurred.\n$e")
|
||||
Globals.api.owner.get().sendMessage(
|
||||
MessageUtil.sendEmbed(Globals.api.owner.get(),
|
||||
EmbedBuilder()
|
||||
.setTimestampToNow()
|
||||
.setColor(Color.RED)
|
||||
|
|
|
@ -54,7 +54,7 @@ class Command(cmd: RawCommand) {
|
|||
message.channel.sendMessage(respond(message.messageAuthor, it))
|
||||
}
|
||||
this.embed?.let {
|
||||
message.channel.sendMessage(embed)
|
||||
MessageUtil.sendEmbed(message.channel, embed)
|
||||
}
|
||||
this.feature?.handle(message)
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package moe.kageru.kagebot.command
|
||||
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import moe.kageru.kagebot.Log.log
|
||||
import moe.kageru.kagebot.MessageUtil
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import moe.kageru.kagebot.config.RawMessageActions
|
||||
import org.javacord.api.event.message.MessageCreateEvent
|
||||
|
||||
|
@ -23,7 +23,8 @@ class MessageActions(rawActions: RawMessageActions) {
|
|||
if (message.message.canYouDelete()) {
|
||||
message.deleteMessage()
|
||||
message.messageAuthor.asUser().ifPresent { user ->
|
||||
user.sendMessage(
|
||||
MessageUtil.sendEmbed(
|
||||
user,
|
||||
MessageUtil.getEmbedBuilder()
|
||||
.addField("Blacklisted", Config.localization.messageDeleted)
|
||||
.addField("Original:", "“${message.readableMessageContent}”")
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package moe.kageru.kagebot.command
|
||||
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import moe.kageru.kagebot.Log.log
|
||||
import moe.kageru.kagebot.MessageUtil
|
||||
import moe.kageru.kagebot.Util
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import moe.kageru.kagebot.config.RawRedirect
|
||||
import org.javacord.api.entity.channel.TextChannel
|
||||
import org.javacord.api.event.message.MessageCreateEvent
|
||||
|
@ -34,7 +34,7 @@ internal class MessageRedirect(rawRedirect: RawRedirect) {
|
|||
}
|
||||
}
|
||||
|
||||
if (Util.wasSuccessful(target.sendMessage(embed))) {
|
||||
if (!Util.wasSuccessful(MessageUtil.sendEmbed(target, embed))) {
|
||||
log.warning("Could not redirect message to channel $target")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@ class DebugFeature : MessageFeature() {
|
|||
|
||||
override fun handleInternal(message: MessageCreateEvent) {
|
||||
if (message.messageAuthor.isBotOwner) {
|
||||
message.channel.sendMessage(getPerformanceStats())
|
||||
MessageUtil.sendEmbed(message.channel, getPerformanceStats())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
package moe.kageru.kagebot.features
|
||||
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import moe.kageru.kagebot.MessageUtil
|
||||
import moe.kageru.kagebot.command.MatchType
|
||||
import moe.kageru.kagebot.config.Config
|
||||
import org.javacord.api.event.message.MessageCreateEvent
|
||||
|
||||
class HelpFeature : MessageFeature() {
|
||||
override fun handleInternal(message: MessageCreateEvent) {
|
||||
message.channel.sendMessage(
|
||||
MessageUtil.sendEmbed(
|
||||
message.channel,
|
||||
MessageUtil.getEmbedBuilder()
|
||||
.addField("Commands:", listCommands(message))
|
||||
)
|
||||
|
|
|
@ -9,7 +9,9 @@ import org.javacord.api.event.message.MessageCreateEvent
|
|||
|
||||
class WelcomeFeature(rawWelcome: RawWelcomeFeature) : MessageFeature() {
|
||||
override fun handleInternal(message: MessageCreateEvent) {
|
||||
message.channel.sendMessage(embed)
|
||||
embed?.let {
|
||||
MessageUtil.sendEmbed(message.channel, embed!!)
|
||||
}
|
||||
}
|
||||
|
||||
val embed: EmbedBuilder? by lazy {
|
||||
|
|
Loading…
Reference in New Issue
Block a user