2019-06-12 23:43:36 +02:00
package moe.kageru.kagebot.command
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
2019-07-14 16:35:20 +02:00
import moe.kageru.kagebot.config.Config
2019-06-12 23:43:36 +02:00
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-07-14 16:35:20 +02:00
MessageUtil . sendEmbed (
user ,
2019-06-10 14:15:03 +02:00
MessageUtil . getEmbedBuilder ( )
2019-07-13 15:39:50 +02:00
. addField ( " Blacklisted " , Config . localization . messageDeleted )
2019-06-10 14:15:03 +02:00
. 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
}
}
}