From a2e7548a2b2509928954326fddaf47255a062348 Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Sat, 4 Dec 2021 18:08:20 +0800 Subject: [PATCH] ref: remove guild FindMember func & remove guild members cache --- client/guild.go | 27 ++++----------------------- client/guild_eventflow.go | 4 +++- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/client/guild.go b/client/guild.go index 3e5c8df6..c555bf10 100644 --- a/client/guild.go +++ b/client/guild.go @@ -41,9 +41,9 @@ type ( CoverUrl string AvatarUrl string Channels []*ChannelInfo - Bots []*GuildMemberInfo - Members []*GuildMemberInfo - Admins []*GuildMemberInfo + // Bots []*GuildMemberInfo + // Members []*GuildMemberInfo + // Admins []*GuildMemberInfo } // GuildMeta 频道数据 @@ -145,25 +145,6 @@ func (s *GuildService) FindGuild(guildId uint64) *GuildInfo { 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 { for _, c := range g.Channels { if c.ChannelId == channelId { @@ -785,7 +766,7 @@ func decodeGuildPushFirstView(c *QQClient, _ *incomingPacketInfo, payload []byte } else { 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) } } diff --git a/client/guild_eventflow.go b/client/guild_eventflow.go index b29740b0..11e90f62 100644 --- a/client/guild_eventflow.go +++ b/client/guild_eventflow.go @@ -174,10 +174,12 @@ func (c *QQClient) processGuildEventBody(m *channel.ChannelMsgContent, eventBody NewChannelInfo: newInfo, }) case eventBody.JoinGuild != nil: + /* 应该不会重复推送把, 不会吧不会吧 if mem := guild.FindMember(eventBody.JoinGuild.GetMemberTinyid()); mem != nil { c.Info("ignore join guild event: member %v already exists", mem.TinyId) return } + */ profile, err := c.GuildService.GetGuildMemberProfileInfo(guild.GuildId, eventBody.JoinGuild.GetMemberTinyid()) if err != nil { 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, Nickname: profile.Nickname, } - guild.Members = append(guild.Members, info) + // guild.Members = append(guild.Members, info) c.dispatchMemberJoinedGuildEvent(&MemberJoinGuildEvent{ Guild: guild, Member: info,