Embeds now consistently show the current time

Fixes #13. Thanks to CommanderLook for pointing this out.
This commit is contained in:
kageru 2019-07-14 16:35:20 +02:00
parent b47dc34ff0
commit 911707a680
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
9 changed files with 31 additions and 13 deletions

View File

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

View File

@ -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 dont seem to work either.
*/

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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