mirror of
https://github.com/Mrs4s/MiraiGo.git
synced 2025-05-04 11:07:40 +08:00
add: MemberCardUpdatedEvent.
This commit is contained in:
parent
737a80c701
commit
6da8636424
@ -119,6 +119,12 @@ type (
|
||||
Member *GroupMemberInfo
|
||||
}
|
||||
|
||||
MemberCardUpdatedEvent struct {
|
||||
Group *GroupInfo
|
||||
OldCard string
|
||||
Member *GroupMemberInfo
|
||||
}
|
||||
|
||||
IGroupNotifyEvent interface {
|
||||
From() int64
|
||||
Content() string
|
||||
|
@ -17,6 +17,7 @@ type eventHandlers struct {
|
||||
leaveGroupHandlers []func(*QQClient, *GroupLeaveEvent)
|
||||
memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent)
|
||||
memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent)
|
||||
memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent)
|
||||
permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent)
|
||||
groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest)
|
||||
joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest)
|
||||
@ -69,6 +70,10 @@ func (c *QQClient) OnGroupMemberLeaved(f func(*QQClient, *MemberLeaveGroupEvent)
|
||||
c.eventHandlers.memberLeavedHandlers = append(c.eventHandlers.memberLeavedHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnGroupMemberCardUpdated(f func(*QQClient, *MemberCardUpdatedEvent)) {
|
||||
c.eventHandlers.memberCardUpdatedHandlers = append(c.eventHandlers.memberCardUpdatedHandlers, f)
|
||||
}
|
||||
|
||||
func (c *QQClient) OnGroupMemberPermissionChanged(f func(*QQClient, *MemberPermissionChangedEvent)) {
|
||||
c.eventHandlers.permissionChangedHandlers = append(c.eventHandlers.permissionChangedHandlers, f)
|
||||
}
|
||||
@ -237,6 +242,17 @@ func (c *QQClient) dispatchMemberLeaveEvent(e *MemberLeaveGroupEvent) {
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) dispatchMemberCardUpdatedEvent(e *MemberCardUpdatedEvent) {
|
||||
if e == nil {
|
||||
return
|
||||
}
|
||||
for _, f := range c.eventHandlers.memberCardUpdatedHandlers {
|
||||
cover(func() {
|
||||
f(c, e)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func (c *QQClient) dispatchPermissionChanged(e *MemberPermissionChangedEvent) {
|
||||
if e == nil {
|
||||
return
|
||||
|
@ -311,6 +311,21 @@ func (c *QQClient) parseGroupMessage(m *msg.Message) *message.GroupMessage {
|
||||
Member: info,
|
||||
})
|
||||
}
|
||||
if m.Head.GroupInfo != nil && m.Head.GroupInfo.GroupCard != "" && mem.CardName != m.Head.GroupInfo.GroupCard {
|
||||
old := mem.CardName
|
||||
if mem.Nickname == m.Head.GroupInfo.GroupCard {
|
||||
mem.CardName = ""
|
||||
} else {
|
||||
mem.CardName = m.Head.GroupInfo.GroupCard
|
||||
}
|
||||
if old != mem.CardName {
|
||||
go c.dispatchMemberCardUpdatedEvent(&MemberCardUpdatedEvent{
|
||||
Group: group,
|
||||
OldCard: old,
|
||||
Member: mem,
|
||||
})
|
||||
}
|
||||
}
|
||||
sender = &message.Sender{
|
||||
Uin: mem.Uin,
|
||||
Nickname: mem.Nickname,
|
||||
|
Loading…
x
Reference in New Issue
Block a user