mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-05 03:23:50 +08:00
fix group member join event.
This commit is contained in:
parent
3d5487fcb3
commit
b87fc53213
@ -758,6 +758,7 @@ func decodeOnlinePushReqPacket(c *QQClient, seq uint16, payload []byte) (interfa
|
|||||||
if s44.GroupSyncMsg.GetGrpCode() != 0 { // member sync
|
if s44.GroupSyncMsg.GetGrpCode() != 0 { // member sync
|
||||||
c.Debug("syncing members.")
|
c.Debug("syncing members.")
|
||||||
if group := c.FindGroup(s44.GroupSyncMsg.GetGrpCode()); group != nil {
|
if group := c.FindGroup(s44.GroupSyncMsg.GetGrpCode()); group != nil {
|
||||||
|
group.Update(func(_ *GroupInfo) {
|
||||||
var lastJoinTime int64 = 0
|
var lastJoinTime int64 = 0
|
||||||
for _, m := range group.Members {
|
for _, m := range group.Members {
|
||||||
if lastJoinTime < m.JoinTime {
|
if lastJoinTime < m.JoinTime {
|
||||||
@ -768,13 +769,14 @@ func decodeOnlinePushReqPacket(c *QQClient, seq uint16, payload []byte) (interfa
|
|||||||
group.Members = newMem
|
group.Members = newMem
|
||||||
for _, m := range newMem {
|
for _, m := range newMem {
|
||||||
if lastJoinTime < m.JoinTime {
|
if lastJoinTime < m.JoinTime {
|
||||||
c.dispatchNewMemberEvent(&MemberJoinGroupEvent{
|
go c.dispatchNewMemberEvent(&MemberJoinGroupEvent{
|
||||||
Group: group,
|
Group: group,
|
||||||
Member: m,
|
Member: m,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
@ -782,7 +784,6 @@ func decodeOnlinePushReqPacket(c *QQClient, seq uint16, payload []byte) (interfa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,9 +450,13 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
|
|||||||
} else {
|
} else {
|
||||||
mem := group.FindMember(m.Head.GetFromUin())
|
mem := group.FindMember(m.Head.GetFromUin())
|
||||||
if mem == nil {
|
if mem == nil {
|
||||||
|
group.Update(func(_ *GroupInfo) {
|
||||||
|
if mem = group.FindMember(m.Head.GetFromUin()); mem != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
info, _ := c.getMemberInfo(group.Code, m.Head.GetFromUin())
|
info, _ := c.getMemberInfo(group.Code, m.Head.GetFromUin())
|
||||||
if info == nil {
|
if info == nil {
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
mem = info
|
mem = info
|
||||||
group.Members = append(group.Members, mem)
|
group.Members = append(group.Members, mem)
|
||||||
@ -460,6 +464,10 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
|
|||||||
Group: group,
|
Group: group,
|
||||||
Member: info,
|
Member: info,
|
||||||
})
|
})
|
||||||
|
})
|
||||||
|
if mem == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
sender = &message.Sender{
|
sender = &message.Sender{
|
||||||
Uin: mem.Uin,
|
Uin: mem.Uin,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user