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 ed1ac5788..b3adda8a6 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 @@ -89,7 +89,9 @@ internal abstract class BotImpl<N : BotNetworkHandler> constructor( // normally closed return@subscribeAlways } - bot.logger.info { "Connection dropped by server or lost, retrying login" } + bot.logger.info { "Connection lost, retrying login" } + + bot.asQQAndroidBot().client.serverList.removeAt(0) var failed = false val time = measureTime { diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt index 40d48e8ec..129372531 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidClient.kt @@ -46,14 +46,14 @@ private fun generateGuid(androidId: ByteArray, macAddress: ByteArray): ByteArray internal fun getRandomByteArray(length: Int): ByteArray = ByteArray(length) { Random.nextInt(0, 255).toByte() } internal object DefaultServerList : Set<Pair<String, Int>> by setOf( - "msfwifi.3g.qq.com" to 8080, "42.81.169.46" to 8080, "42.81.172.81" to 80, "114.221.148.59" to 14000, "42.81.172.147" to 443, "125.94.60.146" to 80, "114.221.144.215" to 80, - "42.81.172.22" to 80 + "42.81.172.22" to 80, + "msfwifi.3g.qq.com" to 8080, ) /* @@ -130,7 +130,7 @@ internal open class QQAndroidClient( internal suspend inline fun useNextServers(crossinline block: suspend (host: String, port: Int) -> Unit) { if (bot.client.serverList.isEmpty()) { - throw NoServerAvailableException(null) + bot.client.serverList.addAll(DefaultServerList) } retryCatching(bot.client.serverList.size, except = LoginFailedException::class) { val pair = bot.client.serverList[0] @@ -159,8 +159,8 @@ internal open class QQAndroidClient( var openAppId: Long = 715019303L - val apkVersionName: ByteArray get() = "8.2.7".toByteArray() - val buildVer: String get() = "8.2.7.4410" // 8.2.0.1296 + val apkVersionName: ByteArray get() = "8.4.8".toByteArray() + val buildVer: String get() = "8.4.8.4810" // 8.2.0.1296 // 8.4.8.4810 // 8.2.7.4410 private val messageSequenceId: AtomicInt = atomic(22911) internal fun atomicNextMessageSequenceId(): Int = messageSequenceId.getAndAdd(2)