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
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("<Self> ${event.readableMessageContent}")
val loggedMessage =
if (event.readableMessageContent.isBlank()) "[embed]" else event.readableMessageContent
Log.info("<Self> $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()

View File

@ -53,13 +53,13 @@ object Util {
}
}
fun <T> wasSuccessful(future: CompletableFuture<T>): Boolean {
fun <T> CompletableFuture<T>.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)

View File

@ -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")
}
}

View File

@ -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)
}