UNPKG

selfbot-discord

Version:
42 lines (36 loc) • 1.28 kB
const Action = require('./Action'); const Constants = require('../../util/Constants'); class GuildMemberRemoveAction extends Action { constructor(client) { super(client); this.deleted = new Map(); } handle(data) { const client = this.client; const guild = client.guilds.get(data.guild_id); let member = null; if (guild) { member = guild.members.get(data.user.id); guild.memberCount--; if (member) { guild._removeMember(member); this.deleted.set(guild.id + data.user.id, member); if (client.status === Constants.Status.READY) client.emit(Constants.Events.GUILD_MEMBER_REMOVE, member); this.scheduleForDeletion(guild.id, data.user.id); } else { member = this.deleted.get(guild.id + data.user.id) || null; } if (member) member.deleted = true; } return { guild, member }; } scheduleForDeletion(guildID, userID) { this.client.setTimeout(() => this.deleted.delete(guildID + userID), this.client.options.restWsBridgeTimeout); } } /** * Emitted whenever a member leaves a guild, or is kicked. * @event Client#guildMemberRemove * @param {GuildMember} member The member that has left/been kicked from the guild */ module.exports = GuildMemberRemoveAction;