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 72d77a9b2..e029b47e8 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 @@ -18,7 +18,7 @@ import net.mamoe.mirai.data.OnlineStatus import net.mamoe.mirai.network.NoServerAvailableException import net.mamoe.mirai.qqandroid.BotAccount import net.mamoe.mirai.qqandroid.QQAndroidBot -import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FileStoragePushFSSvcList +import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FileStoragePushFSSvcListFuckKotlin import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketLogger import net.mamoe.mirai.qqandroid.network.protocol.packet.Tlv @@ -122,7 +122,8 @@ internal open class QQAndroidClient( private val _ssoSequenceId: AtomicInt = atomic(85600) - lateinit var fileStoragePushFSSvcList: FileStoragePushFSSvcList + lateinit var fileStoragePushFSSvcList: FileStoragePushFSSvcListFuckKotlin + internal suspend inline fun useNextServers(crossinline block: suspend (host: String, port: Int) -> Unit) { @Suppress("UNREACHABLE_CODE", "ThrowableNotThrown") // false positive retryCatching(bot.client.serverList.size) { diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/ConfigPush.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/ConfigPush.kt index 3a3782eac..b760c18dc 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/ConfigPush.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/ConfigPush.kt @@ -101,7 +101,7 @@ internal class _339( ) : JceStruct @Serializable -internal class FileStoragePushFSSvcList( +internal class FileStoragePushFSSvcListFuckKotlin( @JceId(0) val vUpLoadList: List? = listOf(), @JceId(1) val vPicDownLoadList: List? = listOf(), @JceId(2) val vGPicDownLoadList: List? = null, diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/ConfigPushSvc.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/ConfigPushSvc.kt index fe6e407ab..c46a6c18d 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/ConfigPushSvc.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/ConfigPushSvc.kt @@ -15,7 +15,7 @@ import kotlinx.serialization.protobuf.ProtoId import net.mamoe.mirai.event.Event import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.network.Packet -import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FileStoragePushFSSvcList +import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FileStoragePushFSSvcListFuckKotlin import net.mamoe.mirai.qqandroid.network.protocol.data.jce.PushResp import net.mamoe.mirai.qqandroid.network.protocol.data.jce.RequestPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.IncomingPacketFactory @@ -82,15 +82,21 @@ internal class ConfigPushSvc { // 19 00 0A 0A 16 0C 31 31 33 2E 39 36 2E 31 32 2E 38 35 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 33 33 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0D 31 31 33 2E 39 36 2E 31 32 2E 32 32 34 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0C 34 32 2E 38 31 2E 31 37 32 2E 36 33 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 37 36 20 50 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0D 31 31 33 2E 39 36 2E 31 32 2E 32 31 37 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 30 2E 31 32 32 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 38 2E 31 34 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 32 2E 32 30 37 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 39 00 0A 0A 16 0C 31 31 33 2E 39 36 2E 31 32 2E 38 35 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 33 33 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0D 31 31 33 2E 39 36 2E 31 32 2E 32 32 34 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0C 34 32 2E 38 31 2E 31 37 32 2E 36 33 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 37 36 20 50 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0D 31 31 33 2E 39 36 2E 31 32 2E 32 31 37 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 30 2E 31 32 32 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 38 2E 31 34 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 32 2E 32 30 37 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 4C 5C 6C 70 01 89 00 04 0A 16 0C 31 31 33 2E 39 36 2E 31 33 2E 34 34 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 32 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 68 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B 99 00 04 0A 16 0C 31 31 33 2E 39 36 2E 31 33 2E 34 34 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 32 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 68 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B A9 0C B9 0C C9 0C D9 0C E0 01 FC 0F F6 10 28 32 30 32 30 2D 30 34 2D 31 32 20 31 39 3A 31 30 3A 30 38 20 64 65 6C 69 76 65 72 79 69 6E 67 20 61 20 70 6F 6C 69 63 79 kotlin.runCatching { - configPush.jcebuf.loadAs(FileStoragePushFSSvcList.serializer()).also { + configPush.jcebuf.loadAs(FileStoragePushFSSvcListFuckKotlin.serializer()).also { bot.client.fileStoragePushFSSvcList = it } }.getOrElse { val default = """ 09 00 01 0A 16 0C 31 38 33 2E 35 37 2E 35 33 2E 31 36 21 1F 90 0B 19 00 01 0A 16 0B 31 38 30 2E 39 36 2E 31 2E 33 30 20 50 0B 29 00 02 0A 16 0D 36 31 2E 31 38 33 2E 31 36 34 2E 34 34 20 50 0B 0A 16 0D 31 31 33 2E 39 36 2E 32 33 32 2E 39 32 20 50 0B 39 00 06 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 2E 32 34 31 20 50 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 2E 32 34 34 20 50 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 2E 32 34 35 20 50 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 2E 32 35 32 20 50 0B 0A 16 0E 31 31 39 2E 31 34 37 2E 31 39 2E 32 35 33 20 50 0B 0A 16 11 73 63 61 6E 6E 6F 6E 2E 33 67 2E 71 71 2E 63 6F 6D 20 50 0B 49 00 04 0A 16 0E 31 31 33 2E 39 36 2E 32 33 32 2E 31 30 38 20 50 0B 0A 16 0D 31 38 33 2E 33 2E 32 33 33 2E 32 32 35 21 1F 90 0B 0A 16 0E 31 32 33 2E 31 35 30 2E 37 36 2E 31 36 38 21 01 BB 0B 0A 16 0D 31 38 30 2E 31 36 33 2E 32 35 2E 33 38 20 50 0B 5A 09 00 03 0A 00 01 19 00 04 0A 00 01 16 0E 31 31 33 2E 39 36 2E 32 33 32 2E 31 30 38 20 50 0B 0A 00 01 16 0D 31 38 33 2E 33 2E 32 33 33 2E 32 32 35 21 1F 90 0B 0A 00 01 16 0E 31 32 33 2E 31 35 30 2E 37 36 2E 31 36 38 21 01 BB 0B 0A 00 01 16 0D 31 38 30 2E 31 36 33 2E 32 35 2E 33 38 20 50 0B 29 0C 3C 0B 0A 00 05 19 00 04 0A 00 01 16 0E 31 31 33 2E 39 36 2E 32 33 32 2E 31 30 38 20 50 0B 0A 00 01 16 0D 31 38 33 2E 33 2E 32 33 33 2E 32 32 35 21 1F 90 0B 0A 00 01 16 0E 31 32 33 2E 31 35 30 2E 37 36 2E 31 36 38 21 01 BB 0B 0A 00 01 16 0D 31 38 30 2E 31 36 33 2E 32 35 2E 33 38 20 50 0B 29 0C 3C 0B 0A 00 0A 19 00 04 0A 00 01 16 0E 31 31 33 2E 39 36 2E 32 33 32 2E 31 30 38 20 50 0B 0A 00 01 16 0D 31 38 33 2E 33 2E 32 33 33 2E 32 32 35 21 1F 90 0B 0A 00 01 16 0E 31 32 33 2E 31 35 30 2E 37 36 2E 31 36 38 21 01 BB 0B 0A 00 01 16 0D 31 38 30 2E 31 36 33 2E 32 35 2E 33 38 20 50 0B 29 00 05 0A 0C 11 20 00 20 10 30 01 0B 0A 00 01 11 20 00 20 08 30 02 0B 0A 00 02 11 20 00 20 08 30 01 0B 0A 00 03 12 00 01 00 00 20 08 30 02 0B 0A 00 04 11 20 00 20 08 30 02 0B 3C 0B 1D 00 00 68 CA 62 F1 01 C2 AF E6 CF 29 4B 18 71 B5 EE 6B 63 EB F0 0B AB EE A0 5C 20 B9 83 E2 52 F7 BF C7 46 80 BC C3 7F 22 6B 6E 23 42 D0 8F C8 6A C4 F4 49 AA E7 94 EF D4 80 0A E4 8B BF E2 C0 4F FC C5 3F 97 1A E8 0F 0F 7D 06 47 62 C3 C8 07 4F E6 F6 E9 DB CB 4C F5 95 6A AD EC FD D0 46 A5 16 8D 30 02 D5 8A 86 2E 5F E8 D6 8C 2D 00 00 10 33 6E 59 70 73 47 38 52 6E 48 6A 64 51 48 46 54 32 76 E4 B8 DD 40 01 5D 00 01 02 54 8A 50 D0 04 0A 68 CA 62 F1 01 C2 AF E6 CF 29 4B 18 71 B5 EE 6B 63 EB F0 0B AB EE A0 5C 20 B9 83 E2 52 F7 BF C7 46 80 BC C3 7F 22 6B 6E 23 42 D0 8F C8 6A C4 F4 49 AA E7 94 EF D4 80 0A E4 8B BF E2 C0 4F FC C5 3F 97 1A E8 0F 0F 7D 06 47 62 C3 C8 07 4F E6 F6 E9 DB CB 4C F5 95 6A AD EC FD D0 46 A5 16 8D 30 02 D5 8A 86 2E 5F E8 D6 8C 12 10 33 6E 59 70 73 47 38 52 6E 48 6A 64 51 48 46 54 1A 40 08 01 12 0D 08 01 15 71 60 E8 6C 18 50 20 01 28 01 12 0E 08 01 15 B7 03 E9 E1 18 90 3F 20 01 28 01 12 0E 08 01 15 7B 96 4C A8 18 BB 03 20 02 28 00 12 0D 08 01 15 B4 A3 19 26 18 50 20 04 28 00 1A 40 08 05 12 0D 08 01 15 71 60 E8 6C 18 50 20 01 28 01 12 0E 08 01 15 B7 03 E9 E1 18 90 3F 20 01 28 01 12 0E 08 01 15 7B 96 4C A8 18 BB 03 20 02 28 00 12 0D 08 01 15 B4 A3 19 26 18 50 20 04 28 00 1A 78 08 0A 12 0D 08 01 15 71 60 E8 6C 18 50 20 01 28 01 12 0E 08 01 15 B7 03 E9 E1 18 90 3F 20 01 28 01 12 0E 08 01 15 7B 96 4C A8 18 BB 03 20 02 28 00 12 0D 08 01 15 B4 A3 19 26 18 50 20 04 28 00 22 09 08 00 10 80 40 18 10 20 01 22 09 08 01 10 80 40 18 08 20 02 22 09 08 02 10 80 40 18 08 20 01 22 0A 08 03 10 80 80 04 18 08 20 02 22 09 08 04 10 80 40 18 08 20 02 20 01 32 04 08 00 10 01 3A 2A 08 10 10 10 18 09 20 09 28 0F 30 0F 38 05 40 05 48 5A 50 01 58 5A 60 5A 68 5A 70 5A 78 0A 80 01 0A 88 01 0A 90 01 0A 98 01 0A 42 0A 08 00 10 00 18 00 20 00 28 00 4A 06 08 01 10 01 18 03 52 42 08 01 12 0A 08 00 10 80 80 04 18 10 20 02 12 0A 08 01 10 80 80 04 18 08 20 02 12 0A 08 02 10 80 80 01 18 08 20 01 12 0A 08 03 10 80 80 04 18 08 20 02 12 0A 08 04 10 80 80 04 18 08 20 02 18 00 20 00 5A 40 08 01 12 0A 08 00 10 80 80 04 18 10 20 02 12 0A 08 01 10 80 80 04 18 08 20 02 12 0A 08 02 10 80 80 01 18 08 20 01 12 0A 08 03 10 80 80 04 18 08 20 02 12 0A 08 04 10 80 80 04 18 08 20 02 18 00 70 02 78 02 80 01 FA 01 0B 69 00 01 0A 16 26 69 6D 67 63 61 63 68 65 2E 71 71 2E 63 6F 6D 2E 73 63 68 65 64 2E 70 31 76 36 2E 74 64 6E 73 76 36 2E 63 6F 6D 2E 20 50 0B 79 00 02 0A 16 0E 31 30 31 2E 32 32 37 2E 31 33 31 2E 36 37 20 50 0B 0A 16 0D 36 31 2E 31 35 31 2E 31 38 33 2E 32 31 20 50 0B 8A 06 0F 31 37 31 2E 31 31 32 2E 32 32 36 2E 32 33 37 10 03 0B 9A 09 00 0B 0A 00 0F 19 00 01 0A 12 71 19 A3 B4 20 50 0B 29 0C 0B 0A 00 04 19 00 01 0A 12 0B 27 59 65 20 50 0B 29 0C 0B 0A 00 0D 19 00 02 0A 12 55 31 BA DE 20 50 0B 0A 12 5B A0 6A 72 20 50 0B 29 0C 0B 0A 00 03 19 00 02 0A 12 C3 B9 D3 74 20 50 0B 0A 12 CC 43 E4 DD 20 50 0B 29 0C 0B 0A 00 07 19 00 01 0A 12 75 A2 E3 65 20 50 0B 29 0C 0B 0A 00 09 19 00 02 0A 12 BC 6C 24 B7 20 50 0B 0A 12 A6 6C 24 B7 20 50 0B 29 0C 0B 0A 00 0A 19 00 02 0A 12 11 B4 12 0E 20 50 0B 0A 12 15 8C D7 0E 20 50 0B 29 0C 0B 0A 00 05 19 00 01 0A 12 1D E2 03 B7 20 50 0B 29 0C 0B 0A 00 08 19 00 02 0A 12 DE 3F 5B 65 20 50 0B 0A 12 78 09 61 B4 20 50 0B 29 0C 0B 0A 00 06 19 00 02 0A 12 16 CF 97 3D 20 50 0B 0A 12 54 10 59 65 20 50 0B 29 0C 0B 0A 00 0E 19 00 02 0A 12 76 01 B1 6F 20 50 0B 0A 12 6B 89 31 3A 20 50 0B 29 0C 0B 0B AD 00 01 01 5B 08 01 10 A4 F6 AA 16 18 00 22 0A 31 39 39 34 37 30 31 30 32 31 28 AB E1 89 EF 0E 32 12 08 8E A4 D8 A5 09 10 50 18 89 D8 AC F0 08 20 50 28 64 32 12 08 8E A4 C4 DD 08 10 50 18 89 F4 DE E0 05 20 50 28 64 32 13 08 B4 C7 DA B0 02 10 50 18 8A EE D4 F2 0D 20 50 28 C8 01 32 13 08 B4 C7 DA A0 02 10 50 18 8A EC D0 86 0E 20 50 28 C8 01 32 13 08 8C 9D 9B 85 07 10 50 18 89 D6 AD 9C 09 20 50 28 AC 02 32 13 08 B7 81 97 F6 06 10 50 18 8A EC D4 96 02 20 50 28 AC 02 3A 1E 0A 10 24 0E 00 E1 A9 00 00 50 00 00 00 00 00 00 00 29 10 50 18 89 EC 8C B1 05 20 50 28 64 3A 1E 0A 10 24 0E 00 E1 A9 00 00 50 00 00 00 00 00 00 00 64 10 50 18 89 EC 8C D1 07 20 50 28 64 3A 1F 0A 10 24 0E 00 FF F1 01 00 10 00 00 00 00 00 00 01 6F 10 50 18 E4 E6 B1 F0 04 20 50 28 C8 01 3A 1F 0A 10 24 0E 00 FF F1 01 00 10 00 00 00 00 00 00 01 72 10 50 18 E4 E6 AD F0 0E 20 50 28 C8 01 3A 1F 0A 10 24 09 8C 1E 75 B0 00 13 00 00 00 00 00 00 00 36 10 50 18 89 EC 9C E8 0D 20 50 28 AC 02 3A 1F 0A 10 24 09 8C 54 10 03 00 10 00 00 00 00 00 00 00 55 10 50 18 89 CA 8C A0 01 20 50 28 AC 02 """.trimIndent().hexToBytes() - bot.client.fileStoragePushFSSvcList = default.loadAs(FileStoragePushFSSvcList.serializer()) + val client = bot.client + + + client.fileStoragePushFSSvcList = + default.loadAs(FileStoragePushFSSvcListFuckKotlin.serializer()) + + Unit // 19 00 0A 0A 16 0F 31 31 34 2E 32 32 31 2E 31 34 34 2E 31 36 30 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0C 31 31 33 2E 39 36 2E 31 33 2E 39 35 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 31 31 33 2E 39 36 2E 31 32 2E 32 31 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 30 2E 31 32 32 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0F 31 31 34 2E 32 32 31 2E 31 34 34 2E 32 31 32 20 50 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0A 31 34 2E 32 32 2E 33 2E 33 35 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 32 2E 31 35 36 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 31 39 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 30 2E 31 32 32 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 39 00 0A 0A 16 0F 31 31 34 2E 32 32 31 2E 31 34 34 2E 31 36 30 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0C 31 31 33 2E 39 36 2E 31 33 2E 39 35 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 31 31 33 2E 39 36 2E 31 32 2E 32 31 37 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 30 2E 31 32 32 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0F 31 31 34 2E 32 32 31 2E 31 34 34 2E 32 31 32 20 50 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 0A 31 34 2E 32 32 2E 33 2E 33 35 21 36 B0 30 01 4C 5C 60 08 70 01 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 32 2E 31 35 36 21 01 BB 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 31 39 21 1F 90 30 01 4C 5C 60 08 70 01 86 02 73 68 96 03 74 65 6C 0B 0A 16 11 6D 73 66 77 69 66 69 2E 33 67 2E 71 71 2E 63 6F 6D 21 1F 90 30 01 4C 5C 60 08 7C 86 06 6F 74 68 65 72 73 96 06 6F 74 68 65 72 73 0B 0A 16 0D 34 32 2E 38 31 2E 31 37 30 2E 31 32 32 20 50 30 01 4C 5C 60 08 70 01 86 02 74 6A 96 03 74 65 6C 0B 4C 5C 6C 70 01 89 00 04 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 32 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 68 96 03 74 65 6C 0B 0A 16 0C 31 31 33 2E 39 36 2E 31 33 2E 34 34 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B 99 00 04 0A 16 0E 31 31 34 2E 32 32 31 2E 31 34 34 2E 32 32 20 50 30 01 4C 50 03 60 08 7C 86 02 73 68 96 03 74 65 6C 0B 0A 16 0C 31 31 33 2E 39 36 2E 31 33 2E 34 34 20 50 30 01 4C 50 03 60 08 7C 86 02 73 7A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B 0A 16 0D 34 32 2E 38 31 2E 31 36 39 2E 31 30 35 20 50 30 01 4C 50 03 60 08 7C 86 02 74 6A 96 03 74 65 6C 0B A9 0C B9 0C C9 0C D9 0C E0 01 FC 0F F6 10 28 32 30 32 30 2D 30 34 2D 31 34 20 32 31 3A 33 31 3A 31 36 20 64 65 6C 69 76 65 72 79 69 6E 67 20 61 20 70 6F 6C 69 63 79 // failed } diff --git a/mirai-core-qqandroid/src/commonTest/kotlin/net.mamoe.mirai.qqandroid/io/serialization/JceInputTest.kt b/mirai-core-qqandroid/src/commonTest/kotlin/net.mamoe.mirai.qqandroid/io/serialization/JceInputTest.kt index a264345c1..78671f853 100644 --- a/mirai-core-qqandroid/src/commonTest/kotlin/net.mamoe.mirai.qqandroid/io/serialization/JceInputTest.kt +++ b/mirai-core-qqandroid/src/commonTest/kotlin/net.mamoe.mirai.qqandroid/io/serialization/JceInputTest.kt @@ -7,7 +7,7 @@ import kotlinx.io.core.toByteArray import kotlinx.io.core.writeFully import kotlinx.serialization.MissingFieldException import kotlinx.serialization.Serializable -import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FileStoragePushFSSvcList +import net.mamoe.mirai.qqandroid.network.protocol.data.jce.FileStoragePushFSSvcListFuckKotlin import net.mamoe.mirai.qqandroid.utils.autoHexToBytes import net.mamoe.mirai.qqandroid.utils.io.JceStruct import net.mamoe.mirai.qqandroid.utils.io.serialization.JceCharset @@ -107,7 +107,7 @@ internal class JceInputTest { */ - data.loadAs(FileStoragePushFSSvcList.serializer()) + data.loadAs(FileStoragePushFSSvcListFuckKotlin.serializer()) } @Test diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/linear.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/linear.kt index a1291dc7f..8aa8082f1 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/linear.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/linear.kt @@ -98,19 +98,12 @@ internal suspend inline fun subscribingGetOrNullImpl( var listener: Listener? = null @Suppress("DuplicatedCode") // for better performance listener = coroutineScope.subscribe { - val value = try { - mapper.invoke(this, it) - } catch (e: Exception) { - result = Result.failure(e) - listener!!.complete() - return@subscribe ListeningStatus.STOPPED + result = kotlin.runCatching { + mapper.invoke(this, it) ?: return@subscribe ListeningStatus.LISTENING } + listener!!.complete() + return@subscribe ListeningStatus.STOPPED - if (value != null) { - result = Result.success(value) - listener!!.complete() - return@subscribe ListeningStatus.STOPPED - } else return@subscribe ListeningStatus.LISTENING } listener.join()