From 8fb9c2a11dec6f71d180301562fa27e132537207 Mon Sep 17 00:00:00 2001 From: Soumil07 Date: Wed, 24 Oct 2018 21:00:37 +0530 Subject: [PATCH] track membercount on memberAdd and leave (#602) * track membercount on memberAdd and leave * requested changes --- state.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/state.go b/state.go index 3a4643f..e6f08c7 100644 --- a/state.go +++ b/state.go @@ -814,6 +814,14 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) { case *GuildDelete: err = s.GuildRemove(t.Guild) case *GuildMemberAdd: + // Updates the MemberCount of the guild. + guild, err := s.Guild(t.Member.GuildID) + if err != nil { + return err + } + guild.MemberCount++ + + // Caches member if tracking is enabled. if s.TrackMembers { err = s.MemberAdd(t.Member) } @@ -822,6 +830,14 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) { err = s.MemberAdd(t.Member) } case *GuildMemberRemove: + // Updates the MemberCount of the guild. + guild, err := s.Guild(t.Member.GuildID) + if err != nil { + return err + } + guild.MemberCount-- + + // Removes member from the cache if tracking is enabled. if s.TrackMembers { err = s.MemberRemove(t.Member) }