From 4155a8f8ba2f99811b52d7a596dd32d750f55572 Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 15 Sep 2020 20:56:53 +0800 Subject: [PATCH] Fix IndexOutOfBoundsException on relogin. Close #598 --- .../commonMain/kotlin/net/mamoe/mirai/qqandroid/BotImpl.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/BotImpl.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/BotImpl.kt index b3adda8a6..da52de868 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/BotImpl.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/BotImpl.kt @@ -27,6 +27,7 @@ import net.mamoe.mirai.event.subscribeAlways import net.mamoe.mirai.network.ForceOfflineException import net.mamoe.mirai.network.LoginFailedException import net.mamoe.mirai.qqandroid.network.BotNetworkHandler +import net.mamoe.mirai.qqandroid.network.DefaultServerList import net.mamoe.mirai.qqandroid.network.closeAndJoin import net.mamoe.mirai.supervisorJob import net.mamoe.mirai.utils.* @@ -91,7 +92,11 @@ internal abstract class BotImpl constructor( } bot.logger.info { "Connection lost, retrying login" } - bot.asQQAndroidBot().client.serverList.removeAt(0) + bot.asQQAndroidBot().client.run { + if (serverList.isEmpty()) { + serverList.addAll(DefaultServerList) + } else serverList.removeAt(0) + } var failed = false val time = measureTime {