2019-06-08 21:52:30 +02:00
package moe.kageru.kagebot
import moe.kageru.kagebot.Config.Companion.config
import moe.kageru.kagebot.Log.log
import org.javacord.api.DiscordApiBuilder
import org.javacord.api.event.message.MessageCreateEvent
class Kagebot {
companion object {
fun processMessage ( event : MessageCreateEvent ) {
2019-06-08 23:51:29 +02:00
if ( event . messageAuthor . isYourself ) {
2019-06-08 23:50:05 +02:00
return
}
2019-06-08 21:52:30 +02:00
for ( command in config . commands ) {
if ( command . matches ( event . messageContent ) ) {
2019-06-08 23:50:05 +02:00
command . execute ( event )
2019-06-08 21:52:30 +02:00
break
}
}
}
}
init {
val api = DiscordApiBuilder ( ) . setToken ( Config . secret ) . login ( ) . join ( )
2019-06-09 01:04:00 +02:00
Config . server = api . getServerById ( config . system . serverId ) . orElseThrow ( )
2019-06-09 18:41:51 +02:00
Config . api = api
2019-06-08 21:52:30 +02:00
Runtime . getRuntime ( ) . addShutdownHook ( Thread {
log . info ( " Bot has been interrupted. Shutting down. " )
api . disconnect ( )
} )
log . info ( " kagebot Mk II running " )
api . addMessageCreateListener { processMessage ( it ) }
}
}