1
0
mirror of https://github.com/Mrs4s/MiraiGo.git synced 2025-05-04 19:17:38 +08:00

ref: remove guild FindMember func & remove guild members cache

This commit is contained in:
Mrs4s 2021-12-04 18:08:20 +08:00
parent 34bb74d1d1
commit a2e7548a2b
No known key found for this signature in database
GPG Key ID: 3186E98FA19CE3A7
2 changed files with 7 additions and 24 deletions

View File

@ -41,9 +41,9 @@ type (
CoverUrl string CoverUrl string
AvatarUrl string AvatarUrl string
Channels []*ChannelInfo Channels []*ChannelInfo
Bots []*GuildMemberInfo // Bots []*GuildMemberInfo
Members []*GuildMemberInfo // Members []*GuildMemberInfo
Admins []*GuildMemberInfo // Admins []*GuildMemberInfo
} }
// GuildMeta 频道数据 // GuildMeta 频道数据
@ -145,25 +145,6 @@ func (s *GuildService) FindGuild(guildId uint64) *GuildInfo {
return nil return nil
} }
func (g *GuildInfo) FindMember(tinyId uint64) *GuildMemberInfo {
for i := 0; i < len(g.Members); i++ {
if g.Members[i].TinyId == tinyId {
return g.Members[i]
}
}
for i := 0; i < len(g.Admins); i++ {
if g.Admins[i].TinyId == tinyId {
return g.Admins[i]
}
}
for i := 0; i < len(g.Bots); i++ {
if g.Bots[i].TinyId == tinyId {
return g.Bots[i]
}
}
return nil
}
func (g *GuildInfo) FindChannel(channelId uint64) *ChannelInfo { func (g *GuildInfo) FindChannel(channelId uint64) *ChannelInfo {
for _, c := range g.Channels { for _, c := range g.Channels {
if c.ChannelId == channelId { if c.ChannelId == channelId {
@ -785,7 +766,7 @@ func decodeGuildPushFirstView(c *QQClient, _ *incomingPacketInfo, payload []byte
} else { } else {
info.Channels = channels info.Channels = channels
} }
info.Bots, info.Members, info.Admins, _ = c.GuildService.GetGuildMembers(info.GuildId) // info.Bots, info.Members, info.Admins, _ = c.GuildService.GetGuildMembers(info.GuildId)
c.GuildService.Guilds = append(c.GuildService.Guilds, info) c.GuildService.Guilds = append(c.GuildService.Guilds, info)
} }
} }

View File

@ -174,10 +174,12 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
NewChannelInfo: newInfo, NewChannelInfo: newInfo,
}) })
case eventBody.JoinGuild != nil: case eventBody.JoinGuild != nil:
/* 应该不会重复推送把, 不会吧不会吧
if mem := guild.FindMember(eventBody.JoinGuild.GetMemberTinyid()); mem != nil { if mem := guild.FindMember(eventBody.JoinGuild.GetMemberTinyid()); mem != nil {
c.Info("ignore join guild event: member %v already exists", mem.TinyId) c.Info("ignore join guild event: member %v already exists", mem.TinyId)
return return
} }
*/
profile, err := c.GuildService.GetGuildMemberProfileInfo(guild.GuildId, eventBody.JoinGuild.GetMemberTinyid()) profile, err := c.GuildService.GetGuildMemberProfileInfo(guild.GuildId, eventBody.JoinGuild.GetMemberTinyid())
if err != nil { if err != nil {
c.Error("error to decode member join guild event: get member profile error: %v", err) c.Error("error to decode member join guild event: get member profile error: %v", err)
@ -187,7 +189,7 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody
TinyId: profile.TinyId, TinyId: profile.TinyId,
Nickname: profile.Nickname, Nickname: profile.Nickname,
} }
guild.Members = append(guild.Members, info) // guild.Members = append(guild.Members, info)
c.dispatchMemberJoinedGuildEvent(&MemberJoinGuildEvent{ c.dispatchMemberJoinedGuildEvent(&MemberJoinGuildEvent{
Guild: guild, Guild: guild,
Member: info, Member: info,