diff --git a/disco/state.py b/disco/state.py index 28a54ff..c66759d 100644 --- a/disco/state.py +++ b/disco/state.py @@ -285,6 +285,11 @@ class State(object): if event.member.guild_id not in self.guilds: return + if (self.guilds[event.member.guild_id].member_count is not UNSET and + # Avoid adding duplicate events to member_count. + event.member.id not in self.guilds[event.member.guild_id].members): + self.guilds[event.member.guild_id].member_count += 1 + self.guilds[event.member.guild_id].members[event.member.id] = event.member def on_guild_member_update(self, event): @@ -303,6 +308,9 @@ class State(object): if event.user.id not in self.guilds[event.guild_id].members: return + if self.guilds[event.guild_id].member_count is not UNSET: + self.guilds[event.guild_id].member_count -= 1 + del self.guilds[event.guild_id].members[event.user.id] def on_guild_members_chunk(self, event):