Filter duplicated SystemMsgNewGroup, close #449

This commit is contained in:
Him188 2020-09-16 10:40:56 +08:00
parent a059267868
commit cf66a7c065

View File

@ -58,7 +58,7 @@ internal class NewContact {
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): NewFriendRequestEvent? { override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): NewFriendRequestEvent? {
readBytes().loadAs(Structmsg.RspSystemMsgNew.serializer()).run { readBytes().loadAs(Structmsg.RspSystemMsgNew.serializer()).run {
val struct = friendmsgs?.firstOrNull() val struct = friendmsgs?.firstOrNull()// 会有重复且无法过滤, 不要用 map
return struct?.msg?.run { return struct?.msg?.run {
NewFriendRequestEvent( NewFriendRequestEvent(
bot, bot,
@ -145,9 +145,16 @@ internal class NewContact {
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): Packet? { override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): Packet? {
readBytes().loadAs(Structmsg.RspSystemMsgNew.serializer()).run { readBytes().loadAs(Structmsg.RspSystemMsgNew.serializer()).run {
val struct = groupmsgs?.firstOrNull() val struct = groupmsgs?.firstOrNull() ?: return null // 会有重复且无法过滤, 不要用 map
return struct?.msg?.run { if (!bot.client.syncingController.systemMsgNewGroupCacheList.addCache(
QQAndroidClient.MessageSvcSyncData.SystemMsgNewGroupSyncId(struct.msgSeq, struct.msgTime)
)
) { // duplicate
return null
}
return struct.msg?.run {
//this.soutv("SystemMsg") //this.soutv("SystemMsg")
when (subType) { when (subType) {
1 -> { // 处理被邀请入群 或 处理成员入群申请 1 -> { // 处理被邀请入群 或 处理成员入群申请