Make sending embeds nicer
This commit is contained in:
parent
cdc053a443
commit
8be98f161f
|
@ -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())
|
||||
}
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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}")
|
||||
|
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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}```")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user