diff --git a/src/client/actions/GuildMemberRemove.js b/src/client/actions/GuildMemberRemove.js index 95bff6abf..30feb805d 100644 --- a/src/client/actions/GuildMemberRemove.js +++ b/src/client/actions/GuildMemberRemove.js @@ -10,6 +10,7 @@ class GuildMemberRemoveAction extends Action { member = guild.members.get(data.user.id); guild.memberCount--; if (member) { + guild.voiceStates.delete(member.id); guild.members.remove(member.id); if (client.status === Status.READY) client.emit(Events.GUILD_MEMBER_REMOVE, member); } diff --git a/src/structures/Guild.js b/src/structures/Guild.js index ae12a6a18..f106647ce 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -1033,6 +1033,15 @@ class VoiceStateCollection extends Collection { } super.set(id, voiceState); } + + delete(id) { + const voiceState = this.get(id); + if (voiceState && voiceState.channel_id) { + const channel = this.guild.channels.get(voiceState.channel_id); + if (channel) channel.members.delete(id); + } + return super.delete(id); + } } module.exports = Guild;