Shamrock: fix 重複したグループ参加イベントを削除する

This commit is contained in:
ikechan8370 2023-11-25 19:47:35 +08:00
parent 1a814e565a
commit 75a567d5cd

View File

@ -81,13 +81,7 @@ internal object PrimitiveListener {
732 -> when(subType) { 732 -> when(subType) {
12 -> onGroupBan(msgTime, pb) 12 -> onGroupBan(msgTime, pb)
16 -> onGroupTitleChange(msgTime, pb) 16 -> onGroupTitleChange(msgTime, pb)
17 -> { 17 -> onGroupRecall(msgTime, pb)
try {
onGroupRecall(msgTime, pb)
// invite
onGroupMemIncreased(msgTime, pb)
} finally { }
}
20 -> onGroupPoke(msgTime, pb) 20 -> onGroupPoke(msgTime, pb)
21 -> onEssenceMessage(msgTime, pb) 21 -> onEssenceMessage(msgTime, pb)
} }
@ -287,47 +281,20 @@ internal object PrimitiveListener {
} }
private suspend fun onGroupMemIncreased(time: Long, pb: ProtoMap) { private suspend fun onGroupMemIncreased(time: Long, pb: ProtoMap) {
when(pb[1, 2, 1].asInt) { val groupCode = pb[1, 3, 2, 1].asULong
732 -> { val targetUid = pb[1, 3, 2, 3].asUtf8String
// invite val type = pb[1, 3, 2, 4].asInt
val groupCode = pb[1, 3, 2, 4].asULong val operation = ContactHelper.getUinByUidAsync(pb[1, 3, 2, 5].asUtf8String).toLong()
lateinit var target: String val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
lateinit var operation: String LogCenter.log("群成员增加($groupCode): $target, type = $type")
pb[1, 3, 2, 26, 7].asList
.value
.forEach {
val value = it[2].asUtf8String
when (it[1].asUtf8String) {
"invitee" -> operation = value
"invitor" -> target = value
}
}
val type = 131
LogCenter.log("群成员增加($groupCode): $target, type = $type")
if(!GlobalEventTransmitter.GroupNoticeTransmitter if(!GlobalEventTransmitter.GroupNoticeTransmitter
.transGroupMemberNumChanged(time, target.toLong(), groupCode, operation.toLong(), NoticeType.GroupMemIncrease, NoticeSubType.Invite)) { .transGroupMemberNumChanged(time, target, groupCode, operation, NoticeType.GroupMemIncrease, when(type) {
LogCenter.log("群成员增加推送失败!", Level.WARN) 130 -> NoticeSubType.Approve
} 131 -> NoticeSubType.Invite
} else -> NoticeSubType.Approve
33 -> { })) {
// approve LogCenter.log("群成员增加推送失败!", Level.WARN)
val groupCode = pb[1, 3, 2, 1].asULong
val targetUid = pb[1, 3, 2, 3].asUtf8String
val type = pb[1, 3, 2, 4].asInt
val operation = ContactHelper.getUinByUidAsync(pb[1, 3, 2, 5].asUtf8String).toLong()
val target = ContactHelper.getUinByUidAsync(targetUid).toLong()
LogCenter.log("群成员增加($groupCode): $target, type = $type")
if(!GlobalEventTransmitter.GroupNoticeTransmitter
.transGroupMemberNumChanged(time, target, groupCode, operation, NoticeType.GroupMemIncrease, when(type) {
130 -> NoticeSubType.Approve
131 -> NoticeSubType.Invite
else -> NoticeSubType.Approve
})) {
LogCenter.log("群成员增加推送失败!", Level.WARN)
}
}
} }
} }