diff --git a/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt b/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt new file mode 100644 index 0000000..4a2de78 --- /dev/null +++ b/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt @@ -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) } + } +} \ No newline at end of file diff --git a/src/main/kotlin/moe/kageru/kagebot/main.kt b/src/main/kotlin/moe/kageru/kagebot/main.kt index c29612e..e026c0f 100644 --- a/src/main/kotlin/moe/kageru/kagebot/main.kt +++ b/src/main/kotlin/moe/kageru/kagebot/main.kt @@ -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 - } - } - } -} diff --git a/src/main/resources/config.toml b/src/main/resources/config.toml index 826fb5f..4e490ae 100644 --- a/src/main/resources/config.toml +++ b/src/main/resources/config.toml @@ -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!" diff --git a/src/test/kotlin/moe/kageru/kagebot/CommandTest.kt b/src/test/kotlin/moe/kageru/kagebot/CommandTest.kt new file mode 100644 index 0000000..e98fa3a --- /dev/null +++ b/src/test/kotlin/moe/kageru/kagebot/CommandTest.kt @@ -0,0 +1,2 @@ +package moe.kageru.kagebot + diff --git a/src/test/kotlin/moe/kageru/kagebot/TestUtil.kt b/src/test/kotlin/moe/kageru/kagebot/TestUtil.kt new file mode 100644 index 0000000..e98fa3a --- /dev/null +++ b/src/test/kotlin/moe/kageru/kagebot/TestUtil.kt @@ -0,0 +1,2 @@ +package moe.kageru.kagebot +