Make sending embeds nicer

This commit is contained in:
kageru 2019-07-17 22:04:06 +02:00
parent cdc053a443
commit 8be98f161f
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
6 changed files with 28 additions and 35 deletions

View File

@ -1,9 +1,9 @@
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.Messageable
import org.javacord.api.entity.message.embed.EmbedBuilder
import org.javacord.api.entity.user.User
import java.util.concurrent.CompletableFuture
@ -23,15 +23,17 @@ object MessageUtil {
return builder.setColor(Config.systemConfig.color)
}
fun Messageable.sendEmbed(op: EmbedBuilder.() -> Unit) {
val embed = getEmbedBuilder().setTimestampToNow()
embed.op()
this.sendMessage(embed)
}
/**
* 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> {
fun sendEmbed(target: Messageable, embed: EmbedBuilder): CompletableFuture<Message> {
return target.sendMessage(embed.setTimestampToNow())
}

View File

@ -97,7 +97,6 @@ object Util {
MessageUtil.sendEmbed(
Globals.api.owner.get(),
EmbedBuilder()
.setTimestampToNow()
.setColor(Color.RED)
.addField("Error", "kagebot has encountered an error")
.addField(

View File

@ -1,7 +1,7 @@
package moe.kageru.kagebot.command
import moe.kageru.kagebot.Log
import moe.kageru.kagebot.MessageUtil
import moe.kageru.kagebot.MessageUtil.sendEmbed
import moe.kageru.kagebot.config.Config
import moe.kageru.kagebot.config.RawMessageActions
import org.javacord.api.event.message.MessageCreateEvent
@ -23,12 +23,10 @@ class MessageActions(rawActions: RawMessageActions) {
if (message.message.canYouDelete()) {
message.deleteMessage()
message.messageAuthor.asUser().ifPresent { user ->
MessageUtil.sendEmbed(
user,
MessageUtil.getEmbedBuilder()
.addField("Blacklisted", Config.localization.messageDeleted)
.addField("Original:", "${message.readableMessageContent}")
)
user.sendEmbed {
addField("__Blacklisted__", Config.localization.messageDeleted)
addField("Original:", "${message.readableMessageContent}")
}
}
} else {
Log.info("Tried to delete a message without the necessary permissions. Channel: ${message.channel.id}")

View File

@ -1,17 +1,15 @@
package moe.kageru.kagebot.features
import moe.kageru.kagebot.MessageUtil
import moe.kageru.kagebot.MessageUtil.sendEmbed
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) {
MessageUtil.sendEmbed(
message.channel,
MessageUtil.getEmbedBuilder()
.addField("Commands:", listCommands(message))
)
message.channel.sendEmbed {
addField("Commands:", listCommands(message))
}
}
}

View File

@ -1,7 +1,7 @@
package moe.kageru.kagebot.features
import moe.kageru.kagebot.Log
import moe.kageru.kagebot.MessageUtil
import moe.kageru.kagebot.MessageUtil.sendEmbed
import moe.kageru.kagebot.config.ConfigParser
import moe.kageru.kagebot.config.RawConfig
import org.javacord.api.event.message.MessageCreateEvent
@ -17,14 +17,12 @@ class SetConfigFeature : MessageFeature() {
val rawConfig = try {
RawConfig.readFromString(newConfig)
} catch (e: IllegalStateException) {
MessageUtil.sendEmbed(
message.channel,
MessageUtil.getEmbedBuilder()
.addField(
"An unexpected error occured. This is probably caused by a malformed config file. Perhaps this can help:",
"```$e: ${e.message}"
)
)
message.channel.sendEmbed {
addField(
"An unexpected error occured. This is probably caused by a malformed config file. Perhaps this can help:",
"```$e: ${e.message}"
)
}
Log.info("Could not parse new config: $e: ${e.message}")
return
}
@ -35,11 +33,9 @@ class SetConfigFeature : MessageFeature() {
ConfigParser.configFile.writeText(newConfig)
message.channel.sendMessage("Config reloaded.")
} catch (e: IllegalArgumentException) {
MessageUtil.sendEmbed(
message.channel,
MessageUtil.getEmbedBuilder()
.addField("Error", "```${e.message}```")
)
message.channel.sendEmbed {
addField("Error", "```${e.message}```")
}
}
}
}

View File

@ -10,7 +10,7 @@ import org.javacord.api.event.message.MessageCreateEvent
class WelcomeFeature(rawWelcome: RawWelcomeFeature) : MessageFeature() {
override fun handleInternal(message: MessageCreateEvent) {
embed?.let {
MessageUtil.sendEmbed(message.channel, embed!!)
MessageUtil.sendEmbed(message.channel, it)
}
}