put bot initialization in separate file

This commit is contained in:
kageru 2019-06-08 21:52:30 +02:00
parent 24d43c4a7f
commit da8b717831
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
5 changed files with 46 additions and 21 deletions

View File

@ -0,0 +1,30 @@
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) {
for (command in config.commands) {
if (command.matches(event.messageContent)) {
event.channel.sendMessage(command.respond(event.messageAuthor))
break
}
}
}
}
init {
val api = DiscordApiBuilder().setToken(Config.secret).login().join()
println(config.system.admins)
Runtime.getRuntime().addShutdownHook(Thread {
log.info("Bot has been interrupted. Shutting down.")
api.disconnect()
})
log.info("kagebot Mk II running")
api.addMessageCreateListener { processMessage(it) }
}
}

View File

@ -1,33 +1,13 @@
package moe.kageru.kagebot
import moe.kageru.kagebot.Config.Companion.config
import moe.kageru.kagebot.Log.log
import org.javacord.api.DiscordApiBuilder
import java.lang.System
fun main() {
try {
createBot()
Kagebot()
} catch (e: Exception) {
log.warning("An exception occurred in the main thread, exiting. ${e.stackTrace.joinToString("\n")}")
System.exit(1)
}
}
fun createBot() {
val api = DiscordApiBuilder().setToken(Config.secret).login().join()
println(config.system.admins)
Runtime.getRuntime().addShutdownHook(Thread {
log.info("Bot has been interrupted. Shutting down.")
api.disconnect()
})
log.info("kagebot Mk II running")
api.addMessageCreateListener { event ->
for (command in config.commands) {
if (command.matches(event.messageContent)) {
event.channel.sendMessage(command.respond(event.messageAuthor))
break
}
}
}
}

View File

@ -13,6 +13,17 @@ trigger = "somewhere"
response = "found it"
matchType = "CONTAINS"
[[commands]]
trigger = "A.+B"
response = "regex matched"
matchType = "REGEX"
[[commands]]
trigger = "answer me"
# this will @mention the user who triggered the command,
# i.e. “@author there you go”
response = "@@ there you go"
[[commands]]
trigger = "^[^`]*([()|DoOvVcC][-=^']?;|;[-=^']?[()|DoOpPvVcC3]|:wink:|😉)[^`]*$"
response = "@@ Oboe!"

View File

@ -0,0 +1,2 @@
package moe.kageru.kagebot

View File

@ -0,0 +1,2 @@
package moe.kageru.kagebot