2019-06-12 23:43:36 +02:00
package moe.kageru.kagebot.command
2019-06-09 18:41:51 +02:00
2019-10-18 20:48:43 +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
2019-07-14 16:35:20 +02:00
import moe.kageru.kagebot.config.Config
2019-10-18 19:34:41 +02:00
import moe.kageru.kagebot.config.LocalizationSpec
2019-06-09 18:41:51 +02:00
import org.javacord.api.event.message.MessageCreateEvent
2019-10-18 20:48:43 +02:00
class MessageActions (
2019-11-14 15:10:30 +01:00
private val delete : Boolean = false ,
private val redirect : MessageRedirect ? ,
@JsonProperty ( " assign " )
private val assignment : RoleAssignment ?
2019-10-18 20:48:43 +02:00
) {
2019-06-12 23:43:36 +02:00
2019-11-14 15:10:30 +01:00
fun run ( message : MessageCreateEvent , command : Command ) {
if ( delete ) {
deleteMessage ( message )
2019-06-12 23:43:36 +02:00
}
2019-11-14 15:10:30 +01:00
redirect ?. execute ( message , command )
assignment ?. assign ( message )
}
2019-06-12 23:43:36 +02:00
2019-11-14 15:10:30 +01:00
private fun deleteMessage ( message : MessageCreateEvent ) {
if ( message . message . canYouDelete ( ) ) {
message . deleteMessage ( )
message . messageAuthor . asUser ( ) . ifPresent { user ->
user . sendEmbed {
addField ( " __Blacklisted__ " , Config . localization [ LocalizationSpec . messageDeleted ] )
addField ( " Original: " , " “ ${message.readableMessageContent} ” " )
2019-06-09 18:41:51 +02:00
}
2019-11-14 15:10:30 +01: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
}
2019-11-14 15:10:30 +01:00
}
2019-06-09 18:41:51 +02:00
}