Shamrock: 修复群消息撤回事件群号获取错误

This commit is contained in:
owo233 2023-12-10 01:57:38 +08:00
parent 4dafa75944
commit 1d0a0731fb
No known key found for this signature in database
GPG Key ID: 5D538586B03AFDAB

View File

@ -452,17 +452,19 @@ internal object PrimitiveListener {
} }
private suspend fun onGroupRecall(time: Long, pb: ProtoMap) { private suspend fun onGroupRecall(time: Long, pb: ProtoMap) {
val groupCode = pb[1, 1, 1].asULong var detail = pb[1, 3, 2]
val readPacket = ByteReadPacket(pb[1, 3, 2].asByteArray) if (detail !is ProtoMap) {
try { try {
/** val readPacket = ByteReadPacket(detail.asByteArray)
* 真是不理解这个傻呗设计有些群是正常的Protobuf有些群要去掉7字节 readPacket.discardExact(4)
*/ readPacket.discardExact(1)
val detail = if (readPacket.readBuf32Long() == groupCode) { detail = ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
readPacket.discardExact(1) readPacket.release()
ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt())) } catch (e: Exception) {
} else pb[1, 3, 2] LogCenter.log("onGroupRecall error: ${e.stackTraceToString()}", Level.WARN)
}
}
val groupCode = detail[4].asULong
val operatorUid = detail[11, 1].asUtf8String val operatorUid = detail[11, 1].asUtf8String
val targetUid = detail[11, 3, 6].asUtf8String val targetUid = detail[11, 3, 6].asUtf8String
val msgSeq = detail[11, 3, 1].asLong val msgSeq = detail[11, 3, 1].asLong
@ -482,9 +484,6 @@ internal object PrimitiveListener {
) { ) {
LogCenter.log("群消息撤回推送失败!", Level.WARN) LogCenter.log("群消息撤回推送失败!", Level.WARN)
} }
} finally {
readPacket.release()
}
} }
private suspend fun onGroupApply(time: Long, pb: ProtoMap) { private suspend fun onGroupApply(time: Long, pb: ProtoMap) {