2019-06-15 12:59:02 +02:00
package moe.kageru.kagebot.features
import moe.kageru.kagebot.MessageUtil
import moe.kageru.kagebot.Util
import moe.kageru.kagebot.config.RawWelcomeFeature
import org.javacord.api.entity.channel.TextChannel
import org.javacord.api.entity.message.embed.EmbedBuilder
2019-07-07 11:08:49 +02:00
import org.javacord.api.event.message.MessageCreateEvent
class WelcomeFeature ( rawWelcome : RawWelcomeFeature ) : MessageFeature ( ) {
override fun handleInternal ( message : MessageCreateEvent ) {
2019-07-14 16:35:20 +02:00
embed ?. let {
2019-07-17 22:04:06 +02:00
MessageUtil . sendEmbed ( message . channel , it )
2019-07-14 16:35:20 +02:00
}
2019-07-07 11:08:49 +02:00
}
2019-06-15 12:59:02 +02:00
2019-07-17 23:17:16 +02:00
fun hasFallback ( ) : Boolean = fallbackChannel != null && fallbackMessage != null
2019-06-15 12:59:02 +02:00
val embed : EmbedBuilder ? by lazy {
2019-07-12 14:08:22 +02:00
rawWelcome . content ?. let ( MessageUtil :: listToEmbed )
2019-06-15 12:59:02 +02:00
}
val fallbackChannel : TextChannel ? = rawWelcome . fallbackChannel ?. let {
if ( rawWelcome . fallbackMessage == null ) {
throw IllegalArgumentException ( " [feature.welcome.fallbackMessage] must not be null if fallbackChannel is defined " )
}
Util . findChannel ( it )
}
val fallbackMessage : String ? = rawWelcome . fallbackMessage
2019-07-13 14:52:05 +02:00
}