track membercount on memberAdd and leave (#602)

* track membercount on memberAdd and leave

* requested changes
This commit is contained in:
Soumil07 2018-10-24 21:00:37 +05:30 committed by Chris Rhodes
parent c8554477e4
commit 8fb9c2a11d

View file

@ -814,6 +814,14 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) {
case *GuildDelete: case *GuildDelete:
err = s.GuildRemove(t.Guild) err = s.GuildRemove(t.Guild)
case *GuildMemberAdd: 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 { if s.TrackMembers {
err = s.MemberAdd(t.Member) err = s.MemberAdd(t.Member)
} }
@ -822,6 +830,14 @@ func (s *State) OnInterface(se *Session, i interface{}) (err error) {
err = s.MemberAdd(t.Member) err = s.MemberAdd(t.Member)
} }
case *GuildMemberRemove: 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 { if s.TrackMembers {
err = s.MemberRemove(t.Member) err = s.MemberRemove(t.Member)
} }