From 7bbcaba49ce424fe0d8268959616f3e6d4edd1fa Mon Sep 17 00:00:00 2001 From: kageru Date: Tue, 23 Jul 2019 23:31:23 +0200 Subject: [PATCH] Close DB on shutdown MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apparently, we can’t trust the library to handle this, as their hook seems to fail. --- src/main/kotlin/moe/kageru/kagebot/Kagebot.kt | 2 ++ src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt | 1 + src/main/kotlin/moe/kageru/kagebot/persistence/Dao.kt | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt b/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt index c8325e0..cdbe4b7 100644 --- a/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt +++ b/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt @@ -5,6 +5,7 @@ import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.ConfigParser import moe.kageru.kagebot.config.RawConfig import moe.kageru.kagebot.cron.CronD +import moe.kageru.kagebot.persistence.Dao import org.javacord.api.DiscordApiBuilder import org.javacord.api.event.message.MessageCreateEvent import java.io.File @@ -44,6 +45,7 @@ object Kagebot { } Runtime.getRuntime().addShutdownHook(Thread { Log.info("Bot has been interrupted. Shutting down.") + Dao.close() Globals.api.disconnect() }) Log.info("kagebot Mk II running") diff --git a/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt b/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt index 0dd7801..5a471d3 100644 --- a/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt +++ b/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt @@ -35,6 +35,7 @@ internal class MessageRedirect(rawRedirect: RawRedirect) { } if (MessageUtil.sendEmbed(target, embed).failed()) { + target.sendMessage("Error: could not redirect message.") Log.warn("Could not redirect message to channel $target") } } diff --git a/src/main/kotlin/moe/kageru/kagebot/persistence/Dao.kt b/src/main/kotlin/moe/kageru/kagebot/persistence/Dao.kt index 99210b2..f8e562a 100644 --- a/src/main/kotlin/moe/kageru/kagebot/persistence/Dao.kt +++ b/src/main/kotlin/moe/kageru/kagebot/persistence/Dao.kt @@ -11,6 +11,8 @@ object Dao { prisoners[releaseTime] = roles.toLongArray() } + fun close() = db.close() + fun getAllTimeouts() = prisoners.keys fun deleteTimeout(releaseTime: Long): LongArray {