diff --git a/mirai-core/src/commonMain/kotlin/contact/NormalMemberImpl.kt b/mirai-core/src/commonMain/kotlin/contact/NormalMemberImpl.kt index 6c20d8073..9b9efe668 100644 --- a/mirai-core/src/commonMain/kotlin/contact/NormalMemberImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/NormalMemberImpl.kt @@ -129,6 +129,9 @@ internal class NormalMemberImpl constructor( check(this.id != bot.id) { "A bot can't mute itself." } + require(durationSeconds > 0) { + "durationSeconds must greater than zero" + } checkBotPermissionHigherThanThis("mute") bot.network.run { TroopManagement.Mute( @@ -141,6 +144,7 @@ internal class NormalMemberImpl constructor( @Suppress("RemoveRedundantQualifierName") // or unresolved reference net.mamoe.mirai.event.events.MemberMuteEvent(this@NormalMemberImpl, durationSeconds, null).broadcastWithBot(bot) + this._muteTimestamp = currentTimeSeconds().toInt() + durationSeconds } override suspend fun unmute() { @@ -156,6 +160,7 @@ internal class NormalMemberImpl constructor( @Suppress("RemoveRedundantQualifierName") // or unresolved reference net.mamoe.mirai.event.events.MemberUnmuteEvent(this@NormalMemberImpl, null).broadcastWithBot(bot) + this._muteTimestamp = 0 } override suspend fun kick(message: String) { diff --git a/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt b/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt index 67dcf2639..c5743cab7 100644 --- a/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt +++ b/mirai-core/src/commonMain/kotlin/network/QQAndroidClient.kt @@ -251,7 +251,7 @@ internal open class QQAndroidClient( /** * t108 时更新 */ - var ksid: ByteArray = "|454001228437590|A8.2.7.27f6ea96".toByteArray() + var ksid: ByteArray = EMPTY_BYTE_ARRAY /** * t186 diff --git a/mirai-core/src/commonMain/kotlin/network/keys.kt b/mirai-core/src/commonMain/kotlin/network/keys.kt index 636b591b4..2d3928734 100644 --- a/mirai-core/src/commonMain/kotlin/network/keys.kt +++ b/mirai-core/src/commonMain/kotlin/network/keys.kt @@ -69,11 +69,11 @@ internal class LoginExtraData( internal class WLoginSigInfo( val uin: Long, - val encryptA1: ByteArray?, // sigInfo[0] + var encryptA1: ByteArray?, // sigInfo[0] /** * WARNING, please check [QQAndroidClient.tlv16a] */ - val noPicSig: ByteArray?, // sigInfo[1] + var noPicSig: ByteArray?, // sigInfo[1] val simpleInfo: WLoginSimpleInfo, 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 e9519ed6e..c65af501e 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 @@ -415,6 +415,8 @@ internal class WtLogin { encryptedDownloadSession = tlvMap119[0x11d]?.let { client.analysisTlv11d(it) } ?: encryptedDownloadSession + encryptA1 = tlvMap119.getOrDefault(0x106, encryptA1) + noPicSig = tlvMap119.getOrDefault(0x16a, noPicSig) } } else { var a1: ByteArray? = tlvMap119.getOrFail(0x106) diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin10.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin10.kt index 215c41879..c922c2596 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin10.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin10.kt @@ -74,13 +74,7 @@ internal object WtLogin10 : WtLoginExt { t187(client.device.macAddress) t188(client.device.androidId) t194(client.device.imsiMd5) - t511( - listOf( - "tenpay.com", "openmobile.qq.com", "docs.qq.com", "connect.qq.com", - "qzone.qq.com", "vip.qq.com", "qun.qq.com", "game.qq.com", "qqweb.qq.com", - "office.qq.com", "ti.qq.com", "mail.qq.com", "qzone.com", "mma.qq.com" - ) - ) + t511() //t544() } diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin15.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin15.kt index 92a6f4a43..c349db306 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin15.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/login/wtlogin/WtLogin15.kt @@ -87,7 +87,8 @@ internal object WtLogin15 : WtLoginExt { t100(appId, 2, client.appClientVersion, client.ssoVersion, client.mainSigMap) t107(0) - // t108(client.ksid) // 第一次 exchange 没有 108 + + //t108(client.ksid) // 第一次 exchange 没有 108 t144(client) t142(client.apkId) t145(client.device.guid) diff --git a/mirai-core/src/commonMain/kotlin/utils/MiraiProtocolInternal.kt b/mirai-core/src/commonMain/kotlin/utils/MiraiProtocolInternal.kt index d9a77c527..43d236d82 100644 --- a/mirai-core/src/commonMain/kotlin/utils/MiraiProtocolInternal.kt +++ b/mirai-core/src/commonMain/kotlin/utils/MiraiProtocolInternal.kt @@ -36,12 +36,12 @@ internal class MiraiProtocolInternal( "com.tencent.mobileqq", 537066978, "8.5.5", - "6.0.0.2454", - 184024956, + "6.0.0.2463", + 150470524, 0x10400, - 34869472, + 16724722, "A6 B7 45 BF 24 A2 C2 77 52 77 16 F6 F3 6E B6 8D", - 1604580615L, + 1609322643L, ) protocols[MiraiProtocol.ANDROID_PAD] = MiraiProtocolInternal( "com.tencent.mobileqq",