2019-06-12 23:43:36 +02:00
package moe.kageru.kagebot.command
2019-06-09 18:41:51 +02:00
2019-06-12 23:43:36 +02:00
import moe.kageru.kagebot.Globals.config
2019-06-09 18:41:51 +02:00
import moe.kageru.kagebot.Log.log
2019-06-12 23:43:36 +02:00
import moe.kageru.kagebot.MessageUtil
import moe.kageru.kagebot.config.RawMessageActions
2019-06-09 18:41:51 +02:00
import org.javacord.api.event.message.MessageCreateEvent
2019-06-12 23:43:36 +02:00
class MessageActions ( rawActions : RawMessageActions ) {
private val delete : Boolean = rawActions . delete
2019-07-11 22:16:02 +02:00
private val redirect : MessageRedirect ? = rawActions . redirect ?. let ( :: MessageRedirect )
private val assignment : RoleAssignment ? = rawActions . assign ?. let ( :: RoleAssignment )
2019-06-12 23:43:36 +02:00
2019-06-09 18:41:51 +02:00
fun run ( message : MessageCreateEvent , command : Command ) {
2019-06-12 23:43:36 +02:00
if ( delete ) {
deleteMessage ( message )
}
redirect ?. execute ( message , command )
2019-07-11 22:16:02 +02:00
assignment ?. assign ( message )
2019-06-12 23:43:36 +02:00
}
private fun deleteMessage ( message : MessageCreateEvent ) {
if ( message . message . canYouDelete ( ) ) {
2019-06-09 18:41:51 +02:00
message . deleteMessage ( )
2019-06-12 23:43:36 +02:00
message . messageAuthor . asUser ( ) . ifPresent { user ->
2019-06-10 14:15:03 +02:00
user . sendMessage (
MessageUtil . getEmbedBuilder ( )
. addField ( " Blacklisted " , config . localization . messageDeleted )
. addField ( " Original: " , " “ ${message.readableMessageContent} ” " )
)
}
2019-06-12 23:43:36 +02:00
} else {
log . info ( " Tried to delete a message without the necessary permissions. Channel: ${message.channel.id} " )
2019-06-09 18:41:51 +02:00
}
}
}