From 60f1e79e499d122d760f580648754579cd39dfb3 Mon Sep 17 00:00:00 2001 From: StageGuard <1355416608@qq.com> Date: Wed, 6 Sep 2023 10:51:11 +0800 Subject: [PATCH] [core] handle login result 180 --- .../network/protocol/packet/login/WtLogin.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/WtLogin.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/WtLogin.kt index bb5879234..b4f46ef7d 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/WtLogin.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/WtLogin.kt @@ -241,6 +241,8 @@ internal class WtLogin { // 40: blocked // 161: 今日操作次数过多,请等待一天后再试。 (SMS) // 162: 可能也是 SMS 太频繁 + // 180:可能是需要换服务器 IP + 180 -> onChangeServerIpv6(tlvMap, bot) 204 /*-52*/ -> onDevLockLogin(tlvMap, bot) // 1, 15 -> onErrorMessage(tlvMap) ?: error("Cannot find error message") else -> { @@ -256,6 +258,18 @@ internal class WtLogin { return tlvMap.entries.joinToString { "${it.key}=${it.value.toUHexString()}" } } + // temporary function name + private fun onChangeServerIpv6( + tlvMap: TlvMap, + bot: QQAndroidBot + ): LoginPacketResponse.Error { + tlvMap[0x161]?.let { bot.client.analysisTlv161(it) } + + return onErrorMessage(0x146, tlvMap, bot) + ?: LoginPacketResponse.Error(bot, 0x146, "login failed", + "login result type 180 without error message", "") + } + private fun onDevLockLogin( tlvMap: TlvMap, bot: QQAndroidBot