Cleanup in main classes

This commit is contained in:
kageru 2019-07-17 23:17:16 +02:00
parent e6f73bb178
commit d425687fb5
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
4 changed files with 17 additions and 17 deletions

View File

@ -1,6 +1,7 @@
package moe.kageru.kagebot package moe.kageru.kagebot
import moe.kageru.kagebot.Util.checked import moe.kageru.kagebot.Util.checked
import moe.kageru.kagebot.Util.failed
import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.Config
import moe.kageru.kagebot.config.ConfigParser import moe.kageru.kagebot.config.ConfigParser
import moe.kageru.kagebot.config.RawConfig import moe.kageru.kagebot.config.RawConfig
@ -18,7 +19,9 @@ object Kagebot {
fun processMessage(event: MessageCreateEvent) { fun processMessage(event: MessageCreateEvent) {
if (event.messageAuthor.isBotUser) { if (event.messageAuthor.isBotUser) {
if (event.messageAuthor.isYourself) { if (event.messageAuthor.isYourself) {
Log.info("<Self> ${event.readableMessageContent}") val loggedMessage =
if (event.readableMessageContent.isBlank()) "[embed]" else event.readableMessageContent
Log.info("<Self> $loggedMessage")
} }
return return
} }
@ -31,24 +34,18 @@ object Kagebot {
} }
fun welcomeUser(event: ServerMemberJoinEvent) { fun welcomeUser(event: ServerMemberJoinEvent) {
Config.features.welcome!!.let { welcome -> Config.features.welcome!!.run {
val message = event.user.sendMessage(welcome.embed) val message = event.user.sendMessage(embed)
// If the user disabled direct messages, try the fallback (if defined) // If the user disabled direct messages, try the fallback (if defined)
if (!Util.wasSuccessful(message) && if (message.failed() && hasFallback()) {
welcome.fallbackChannel != null && fallbackChannel!!.sendMessage(
welcome.fallbackMessage != null fallbackMessage!!.replace("@@", MessageUtil.mention(event.user))
) {
welcome.fallbackChannel.sendMessage(
welcome.fallbackMessage.replace(
"@@",
MessageUtil.mention(event.user)
)
) )
} }
} }
} }
private fun getSecret() = File("secret").readText().replace("\n", "") private fun getSecret() = File("secret").readText().trim()
fun init() { fun init() {
Globals.api = DiscordApiBuilder().setToken(getSecret()).login().join() Globals.api = DiscordApiBuilder().setToken(getSecret()).login().join()

View File

@ -53,13 +53,13 @@ object Util {
} }
} }
fun <T> wasSuccessful(future: CompletableFuture<T>): Boolean { fun <T> CompletableFuture<T>.failed(): Boolean {
try { try {
future.join() join()
} catch (e: CompletionException) { } catch (e: CompletionException) {
// we don’t care about this error, but I don’t want to spam stdout // we don’t care about this error, but I don’t want to spam stdout
} }
return !future.isCompletedExceptionally return isCompletedExceptionally
} }
@Throws(IllegalArgumentException::class) @Throws(IllegalArgumentException::class)

View File

@ -4,6 +4,7 @@ import moe.kageru.kagebot.Log
import moe.kageru.kagebot.MessageUtil import moe.kageru.kagebot.MessageUtil
import moe.kageru.kagebot.Util import moe.kageru.kagebot.Util
import moe.kageru.kagebot.Util.applyIf import moe.kageru.kagebot.Util.applyIf
import moe.kageru.kagebot.Util.failed
import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.Config
import moe.kageru.kagebot.config.RawRedirect import moe.kageru.kagebot.config.RawRedirect
import org.javacord.api.entity.channel.TextChannel 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") Log.warn("Could not redirect message to channel $target")
} }
} }

View File

@ -14,6 +14,8 @@ class WelcomeFeature(rawWelcome: RawWelcomeFeature) : MessageFeature() {
} }
} }
fun hasFallback(): Boolean = fallbackChannel != null && fallbackMessage != null
val embed: EmbedBuilder? by lazy { val embed: EmbedBuilder? by lazy {
rawWelcome.content?.let(MessageUtil::listToEmbed) rawWelcome.content?.let(MessageUtil::listToEmbed)
} }