From 66ec1ab76a0f3e16426259c02435b407306ecb31 Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Tue, 1 Dec 2020 12:43:04 +0800 Subject: [PATCH] Fix ambiguous DefaultLoginSolver --- .../commonMain/kotlin/utils/LoginSolver.kt | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/mirai-core-api/src/commonMain/kotlin/utils/LoginSolver.kt b/mirai-core-api/src/commonMain/kotlin/utils/LoginSolver.kt index 293b09fc5..325b90f26 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/LoginSolver.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/LoginSolver.kt @@ -21,6 +21,7 @@ import net.mamoe.mirai.Bot import net.mamoe.mirai.network.LoginFailedException import net.mamoe.mirai.network.NoStandardInputForCaptchaException import utils.SwingSolver +import utils.WindowHelperJvm import java.awt.Image import java.awt.image.BufferedImage import java.io.File @@ -62,8 +63,13 @@ public abstract class LoginSolver { public abstract suspend fun onSolveUnsafeDeviceLoginVerify(bot: Bot, url: String): String? public companion object { - public val Default: LoginSolver = - DefaultLoginSolver({ readLine() ?: throw NoStandardInputForCaptchaException(null) }) + public val Default: LoginSolver = kotlin.run { + if (WindowHelperJvm.isDesktopSupported) { + SwingSolver + } else { + DefaultLoginSolver({ readLine() ?: throw NoStandardInputForCaptchaException(null) }) + } + } } } @@ -74,17 +80,9 @@ public abstract class LoginSolver { @MiraiExperimentalApi public class DefaultLoginSolver( public val input: suspend () -> String, - public val overrideLogger: MiraiLogger? = null + overrideLogger: MiraiLogger? = null ) : LoginSolver() { - private val delegate: LoginSolver - - init { - if (WindowHelperJvm.isDesktopSupported) { - delegate = SwingSolver - } else { - delegate = StandardCharImageLoginSolver(input, overrideLogger) - } - } + private val delegate: LoginSolver = StandardCharImageLoginSolver(input, overrideLogger) override suspend fun onSolvePicCaptcha(bot: Bot, data: ByteArray): String? { return delegate.onSolvePicCaptcha(bot, data)