From 93e083da4fd8a936d534abb6d16e42f37837da4d Mon Sep 17 00:00:00 2001 From: Pascal Date: Sun, 21 Jan 2018 07:30:59 +0100 Subject: [PATCH] fix(Guild): memberCount not decrementing when an uncached member leaves This leads to GuildMemberStore#_fetchMany to always reject because it expects more member than possible. Also no longer call the GuildMemberRemove handler locally to not decrement twice. --- src/client/actions/GuildMemberRemove.js | 2 +- src/structures/GuildMember.js | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/client/actions/GuildMemberRemove.js b/src/client/actions/GuildMemberRemove.js index b649eba8d..95bff6abf 100644 --- a/src/client/actions/GuildMemberRemove.js +++ b/src/client/actions/GuildMemberRemove.js @@ -8,8 +8,8 @@ class GuildMemberRemoveAction extends Action { let member = null; if (guild) { member = guild.members.get(data.user.id); + guild.memberCount--; if (member) { - guild.memberCount--; guild.members.remove(member.id); if (client.status === Status.READY) client.emit(Events.GUILD_MEMBER_REMOVE, member); } diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js index 038527929..bee96c814 100644 --- a/src/structures/GuildMember.js +++ b/src/structures/GuildMember.js @@ -526,12 +526,7 @@ class GuildMember extends Base { */ kick(reason) { return this.client.api.guilds(this.guild.id).members(this.user.id).delete({ reason }) - .then(() => - this.client.actions.GuildMemberRemove.handle({ - guild_id: this.guild.id, - user: this.user, - }).member - ); + .then(() => this); } /**