discord-kagebot/src/main/kotlin/moe/kageru/kagebot/command/MessageActions.kt
kageru 911707a680
Embeds now consistently show the current time
Fixes #13. Thanks to CommanderLook for pointing this out.
2019-07-14 16:36:11 +02:00

38 lines
1.4 KiB
Kotlin

package moe.kageru.kagebot.command
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
class MessageActions(rawActions: RawMessageActions) {
private val delete: Boolean = rawActions.delete
private val redirect: MessageRedirect? = rawActions.redirect?.let(::MessageRedirect)
private val assignment: RoleAssignment? = rawActions.assign?.let(::RoleAssignment)
fun run(message: MessageCreateEvent, command: Command) {
if (delete) {
deleteMessage(message)
}
redirect?.execute(message, command)
assignment?.assign(message)
}
private fun deleteMessage(message: MessageCreateEvent) {
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}")
)
}
} else {
log.info("Tried to delete a message without the necessary permissions. Channel: ${message.channel.id}")
}
}
}