mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
: fix #124
This commit is contained in:
parent
4e3870a512
commit
ec39aa7bc3
@ -63,6 +63,7 @@ internal object PrimitiveListener {
|
||||
subType = pb[1, 2, 2].asInt
|
||||
}
|
||||
val msgTime = pb[1, 2, 6].asLong
|
||||
try {
|
||||
when (msgType) {
|
||||
33 -> onGroupMemIncreased(msgTime, pb)
|
||||
34 -> onGroupMemberDecreased(msgTime, pb)
|
||||
@ -86,6 +87,9 @@ internal object PrimitiveListener {
|
||||
21 -> onEssenceMessage(msgTime, pb)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
LogCenter.log("onMsgPush(msgType: $msgType): "+e.stackTraceToString(), Level.WARN)
|
||||
}
|
||||
}
|
||||
|
||||
private suspend fun onC2cPoke(msgTime: Long, pb: ProtoMap) {
|
||||
@ -153,8 +157,21 @@ internal object PrimitiveListener {
|
||||
|
||||
|
||||
private suspend fun onCardChange(msgTime: Long, pb: ProtoMap) {
|
||||
val targetId = pb[1, 3, 2, 1, 13, 2].asUtf8String
|
||||
val newCardList = pb[1, 3, 2, 1, 13, 3].asList
|
||||
var detail = pb[1, 3, 2]
|
||||
if (detail !is ProtoMap) {
|
||||
try {
|
||||
val readPacket = ByteReadPacket(detail.asByteArray)
|
||||
readPacket.readBuf32Long()
|
||||
readPacket.discardExact(1)
|
||||
detail = ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||
readPacket.release()
|
||||
} catch (e: Exception) {
|
||||
LogCenter.log("onCardChange error: ${e.stackTraceToString()}", Level.WARN)
|
||||
}
|
||||
}
|
||||
|
||||
val targetId = detail[1, 13, 2].asUtf8String
|
||||
val newCardList = detail[1, 13, 3].asList
|
||||
var newCard = ""
|
||||
newCardList
|
||||
.value
|
||||
@ -163,7 +180,7 @@ internal object PrimitiveListener {
|
||||
newCard = it[2].asUtf8String
|
||||
}
|
||||
}
|
||||
val groupId = pb[1, 3, 2, 1, 13, 4].asLong
|
||||
val groupId = pb[1, 13, 4].asLong
|
||||
var oldCard = ""
|
||||
val targetQQ = ContactHelper.getUinByUidAsync(targetId).toLong()
|
||||
LogCenter.log("群组[$groupId]成员$targetQQ 群名片变动 -> $newCard")
|
||||
@ -181,14 +198,18 @@ internal object PrimitiveListener {
|
||||
}
|
||||
|
||||
private suspend fun onGroupTitleChange(msgTime: Long, pb: ProtoMap) {
|
||||
val groupCode = pb[1, 1, 1].asULong
|
||||
|
||||
val readPacket = ByteReadPacket(pb[1, 3, 2].asByteArray)
|
||||
val detail = if (readPacket.readBuf32Long() == groupCode) {
|
||||
var detail = pb[1, 3, 2]
|
||||
if (detail !is ProtoMap) {
|
||||
try {
|
||||
val readPacket = ByteReadPacket(detail.asByteArray)
|
||||
readPacket.readBuf32Long()
|
||||
readPacket.discardExact(1)
|
||||
ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||
} else pb[1, 3, 2]
|
||||
detail = ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||
readPacket.release()
|
||||
} catch (e: Exception) {
|
||||
LogCenter.log("onGroupTitleChange error: ${e.stackTraceToString()}", Level.WARN)
|
||||
}
|
||||
}
|
||||
|
||||
val targetUin = detail[5, 5].asLong
|
||||
|
||||
@ -213,14 +234,18 @@ internal object PrimitiveListener {
|
||||
}
|
||||
|
||||
private suspend fun onEssenceMessage(msgTime: Long, pb: ProtoMap) {
|
||||
val groupCode = pb[1, 1, 1].asULong
|
||||
|
||||
val readPacket = ByteReadPacket(pb[1, 3, 2].asByteArray)
|
||||
val detail = if (readPacket.readBuf32Long() == groupCode) {
|
||||
var detail = pb[1, 3, 2]
|
||||
if (detail !is ProtoMap) {
|
||||
try {
|
||||
val readPacket = ByteReadPacket(detail.asByteArray)
|
||||
readPacket.readBuf32Long()
|
||||
readPacket.discardExact(1)
|
||||
ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||
} else pb[1, 3, 2]
|
||||
detail = ProtoUtils.decodeFromByteArray(readPacket.readBytes(readPacket.readShort().toInt()))
|
||||
readPacket.release()
|
||||
} catch (e: Exception) {
|
||||
LogCenter.log("onEssenceMessage error: ${e.stackTraceToString()}", Level.WARN)
|
||||
}
|
||||
}
|
||||
|
||||
val groupId = detail[4].asLong
|
||||
val mesSeq = detail[37].asInt
|
||||
|
Loading…
x
Reference in New Issue
Block a user