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