From d425687fb50573da81c257345540bbb8c0e357dc Mon Sep 17 00:00:00 2001 From: kageru Date: Wed, 17 Jul 2019 23:17:16 +0200 Subject: [PATCH] Cleanup in main classes --- src/main/kotlin/moe/kageru/kagebot/Kagebot.kt | 23 ++++++++----------- src/main/kotlin/moe/kageru/kagebot/Util.kt | 6 ++--- .../kageru/kagebot/command/MessageRedirect.kt | 3 ++- .../kageru/kagebot/features/WelcomeFeature.kt | 2 ++ 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt b/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt index c15fe8d..cd2ddf2 100644 --- a/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt +++ b/src/main/kotlin/moe/kageru/kagebot/Kagebot.kt @@ -1,6 +1,7 @@ package moe.kageru.kagebot import moe.kageru.kagebot.Util.checked +import moe.kageru.kagebot.Util.failed import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.ConfigParser import moe.kageru.kagebot.config.RawConfig @@ -18,7 +19,9 @@ object Kagebot { fun processMessage(event: MessageCreateEvent) { if (event.messageAuthor.isBotUser) { if (event.messageAuthor.isYourself) { - Log.info(" ${event.readableMessageContent}") + val loggedMessage = + if (event.readableMessageContent.isBlank()) "[embed]" else event.readableMessageContent + Log.info(" $loggedMessage") } return } @@ -31,24 +34,18 @@ object Kagebot { } fun welcomeUser(event: ServerMemberJoinEvent) { - Config.features.welcome!!.let { welcome -> - val message = event.user.sendMessage(welcome.embed) + Config.features.welcome!!.run { + val message = event.user.sendMessage(embed) // If the user disabled direct messages, try the fallback (if defined) - if (!Util.wasSuccessful(message) && - welcome.fallbackChannel != null && - welcome.fallbackMessage != null - ) { - welcome.fallbackChannel.sendMessage( - welcome.fallbackMessage.replace( - "@@", - MessageUtil.mention(event.user) - ) + if (message.failed() && hasFallback()) { + fallbackChannel!!.sendMessage( + fallbackMessage!!.replace("@@", MessageUtil.mention(event.user)) ) } } } - private fun getSecret() = File("secret").readText().replace("\n", "") + private fun getSecret() = File("secret").readText().trim() fun init() { Globals.api = DiscordApiBuilder().setToken(getSecret()).login().join() diff --git a/src/main/kotlin/moe/kageru/kagebot/Util.kt b/src/main/kotlin/moe/kageru/kagebot/Util.kt index f99bcfa..bbd8caf 100644 --- a/src/main/kotlin/moe/kageru/kagebot/Util.kt +++ b/src/main/kotlin/moe/kageru/kagebot/Util.kt @@ -53,13 +53,13 @@ object Util { } } - fun wasSuccessful(future: CompletableFuture): Boolean { + fun CompletableFuture.failed(): Boolean { try { - future.join() + join() } catch (e: CompletionException) { // we don’t care about this error, but I don’t want to spam stdout } - return !future.isCompletedExceptionally + return isCompletedExceptionally } @Throws(IllegalArgumentException::class) diff --git a/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt b/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt index 0f2de8d..9c904a9 100644 --- a/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt +++ b/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt @@ -4,6 +4,7 @@ import moe.kageru.kagebot.Log import moe.kageru.kagebot.MessageUtil import moe.kageru.kagebot.Util import moe.kageru.kagebot.Util.applyIf +import moe.kageru.kagebot.Util.failed import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.RawRedirect import org.javacord.api.entity.channel.TextChannel @@ -32,7 +33,7 @@ internal class MessageRedirect(rawRedirect: RawRedirect) { } } - if (!Util.wasSuccessful(MessageUtil.sendEmbed(target, embed))) { + if (MessageUtil.sendEmbed(target, embed).failed()) { Log.warn("Could not redirect message to channel $target") } } diff --git a/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt b/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt index 420e38e..0c68faf 100644 --- a/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt +++ b/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt @@ -14,6 +14,8 @@ class WelcomeFeature(rawWelcome: RawWelcomeFeature) : MessageFeature() { } } + fun hasFallback(): Boolean = fallbackChannel != null && fallbackMessage != null + val embed: EmbedBuilder? by lazy { rawWelcome.content?.let(MessageUtil::listToEmbed) }