diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt index 46b499888..af4c665df 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt @@ -89,9 +89,13 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler }.also { _packetReceiverJob = it } } - override suspend fun relogin() { if (::channel.isInitialized) { + if (channel.isOpen) { + kotlin.runCatching { + registerClientOnline() + }.exceptionOrNull() ?: return + } channel.close() } channel = PlatformSocket() @@ -149,10 +153,11 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler } // println("d2key=${bot.client.wLoginSigInfo.d2Key.toUHexString()}") + registerClientOnline() + } - repeat(2) { - StatSvc.Register(bot.client).sendAndExpect(6000) // it's slow - } + private suspend fun registerClientOnline() { + StatSvc.Register(bot.client).sendAndExpect(6000) // it's slow } @UseExperimental(MiraiExperimentalAPI::class, ExperimentalTime::class)