discord-kagebot/src/main/kotlin/moe/kageru/kagebot/command/MessageActions.kt

39 lines
1.3 KiB
Kotlin
Raw Normal View History

package moe.kageru.kagebot.command
2019-06-09 18:41:51 +02:00
import com.fasterxml.jackson.annotation.JsonProperty
2019-07-17 21:16:17 +02:00
import moe.kageru.kagebot.Log
2019-07-17 22:04:06 +02:00
import moe.kageru.kagebot.MessageUtil.sendEmbed
import moe.kageru.kagebot.config.Config
import moe.kageru.kagebot.config.LocalizationSpec
2019-06-09 18:41:51 +02:00
import org.javacord.api.event.message.MessageCreateEvent
class MessageActions(
private val delete: Boolean = false,
private val redirect: MessageRedirect?,
@JsonProperty("assign")
private val assignment: RoleAssignment?
) {
2019-06-09 18:41:51 +02:00
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()) {
2019-06-09 18:41:51 +02:00
message.deleteMessage()
message.messageAuthor.asUser().ifPresent { user ->
2019-07-17 22:04:06 +02:00
user.sendEmbed {
addField("__Blacklisted__", Config.localization[LocalizationSpec.messageDeleted])
2019-07-17 22:04:06 +02:00
addField("Original:", "${message.readableMessageContent}")
}
}
} else {
2019-07-17 21:16:17 +02:00
Log.info("Tried to delete a message without the necessary permissions. Channel: ${message.channel.id}")
2019-06-09 18:41:51 +02:00
}
}
}