diff --git a/src/main/kotlin/moe/kageru/kagebot/Util.kt b/src/main/kotlin/moe/kageru/kagebot/Util.kt index 4b7979c..932b37c 100644 --- a/src/main/kotlin/moe/kageru/kagebot/Util.kt +++ b/src/main/kotlin/moe/kageru/kagebot/Util.kt @@ -46,12 +46,8 @@ object Util { fun findUser(idOrName: String): Option { return when { idOrName.isEntityId() -> server.getMemberById(idOrName).asOption() - else -> { - when { - idOrName.contains('#') -> server.getMemberByDiscriminatedNameIgnoreCase(idOrName).asOption() - else -> server.membersByName(idOrName).firstOrNone() - } - } + idOrName.contains('#') -> server.getMemberByDiscriminatedNameIgnoreCase(idOrName).asOption() + else -> server.membersByName(idOrName).firstOrNone() } } @@ -63,8 +59,6 @@ object Util { } } - fun Either<*, T>.unwrap(): T = this.getOrElse { error("Attempted to unwrap Either.left") } - fun CompletableFuture.failed(): Boolean { try { join() diff --git a/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt b/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt index 7090fc2..578bbe3 100644 --- a/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt +++ b/src/main/kotlin/moe/kageru/kagebot/command/MessageRedirect.kt @@ -5,9 +5,9 @@ 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.Util.unwrap import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.LocalizationSpec +import moe.kageru.kagebot.extensions.unwrap import org.javacord.api.entity.channel.TextChannel import org.javacord.api.event.message.MessageCreateEvent diff --git a/src/main/kotlin/moe/kageru/kagebot/command/Permissions.kt b/src/main/kotlin/moe/kageru/kagebot/command/Permissions.kt index ab563e1..f2212a5 100644 --- a/src/main/kotlin/moe/kageru/kagebot/command/Permissions.kt +++ b/src/main/kotlin/moe/kageru/kagebot/command/Permissions.kt @@ -2,7 +2,7 @@ package moe.kageru.kagebot.command import arrow.core.Option import moe.kageru.kagebot.Util -import moe.kageru.kagebot.Util.unwrap +import moe.kageru.kagebot.extensions.unwrap import org.javacord.api.entity.permission.Role import org.javacord.api.event.message.MessageCreateEvent diff --git a/src/main/kotlin/moe/kageru/kagebot/command/RoleAssignment.kt b/src/main/kotlin/moe/kageru/kagebot/command/RoleAssignment.kt index 3aa0d4a..9f8af30 100644 --- a/src/main/kotlin/moe/kageru/kagebot/command/RoleAssignment.kt +++ b/src/main/kotlin/moe/kageru/kagebot/command/RoleAssignment.kt @@ -3,8 +3,8 @@ package moe.kageru.kagebot.command import com.fasterxml.jackson.annotation.JsonProperty import moe.kageru.kagebot.Log import moe.kageru.kagebot.Util -import moe.kageru.kagebot.Util.unwrap import moe.kageru.kagebot.extensions.getUser +import moe.kageru.kagebot.extensions.unwrap import org.javacord.api.event.message.MessageCreateEvent class RoleAssignment(@JsonProperty("role") role: String) { diff --git a/src/main/kotlin/moe/kageru/kagebot/extensions/ArrowExtensions.kt b/src/main/kotlin/moe/kageru/kagebot/extensions/ArrowExtensions.kt index 6aeeec6..24f4853 100644 --- a/src/main/kotlin/moe/kageru/kagebot/extensions/ArrowExtensions.kt +++ b/src/main/kotlin/moe/kageru/kagebot/extensions/ArrowExtensions.kt @@ -1,8 +1,11 @@ package moe.kageru.kagebot.extensions import arrow.core.Either +import arrow.core.getOrElse fun Either.on(op: (R) -> Unit): Either { this.map { op(it) } return this } + +fun Either<*, T>.unwrap(): T = getOrElse { error("Attempted to unwrap Either.left") } diff --git a/src/main/kotlin/moe/kageru/kagebot/extensions/Extensions.kt b/src/main/kotlin/moe/kageru/kagebot/extensions/JavacordExtensions.kt similarity index 100% rename from src/main/kotlin/moe/kageru/kagebot/extensions/Extensions.kt rename to src/main/kotlin/moe/kageru/kagebot/extensions/JavacordExtensions.kt diff --git a/src/main/kotlin/moe/kageru/kagebot/features/TimeoutFeature.kt b/src/main/kotlin/moe/kageru/kagebot/features/TimeoutFeature.kt index f5f6434..90cfabb 100644 --- a/src/main/kotlin/moe/kageru/kagebot/features/TimeoutFeature.kt +++ b/src/main/kotlin/moe/kageru/kagebot/features/TimeoutFeature.kt @@ -9,12 +9,12 @@ import moe.kageru.kagebot.Log import moe.kageru.kagebot.MessageUtil.sendEmbed import moe.kageru.kagebot.Util.findRole import moe.kageru.kagebot.Util.findUser -import moe.kageru.kagebot.Util.unwrap import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.config.LocalizationSpec import moe.kageru.kagebot.extensions.memberById import moe.kageru.kagebot.extensions.on import moe.kageru.kagebot.extensions.roles +import moe.kageru.kagebot.extensions.unwrap import moe.kageru.kagebot.persistence.Dao import org.javacord.api.entity.permission.Role import org.javacord.api.entity.user.User diff --git a/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt b/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt index 913eec6..13bd995 100644 --- a/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt +++ b/src/main/kotlin/moe/kageru/kagebot/features/WelcomeFeature.kt @@ -5,7 +5,7 @@ import moe.kageru.kagebot.MessageUtil import moe.kageru.kagebot.Util import moe.kageru.kagebot.Util.checked import moe.kageru.kagebot.Util.failed -import moe.kageru.kagebot.Util.unwrap +import moe.kageru.kagebot.extensions.unwrap import org.javacord.api.DiscordApi import org.javacord.api.entity.channel.TextChannel import org.javacord.api.entity.message.embed.EmbedBuilder diff --git a/src/test/kotlin/moe/kageru/kagebot/command/CommandTest.kt b/src/test/kotlin/moe/kageru/kagebot/command/CommandTest.kt index 1af632f..2e6eaa3 100644 --- a/src/test/kotlin/moe/kageru/kagebot/command/CommandTest.kt +++ b/src/test/kotlin/moe/kageru/kagebot/command/CommandTest.kt @@ -16,10 +16,10 @@ import moe.kageru.kagebot.TestUtil.prepareTestEnvironment import moe.kageru.kagebot.TestUtil.testMessageSuccess import moe.kageru.kagebot.TestUtil.withCommands import moe.kageru.kagebot.Util -import moe.kageru.kagebot.Util.unwrap import moe.kageru.kagebot.config.Config import moe.kageru.kagebot.extensions.roles import moe.kageru.kagebot.extensions.rolesByName +import moe.kageru.kagebot.extensions.unwrap import moe.kageru.kagebot.persistence.Dao import org.javacord.api.entity.message.embed.EmbedBuilder import org.javacord.api.entity.permission.Role