'use strict'; const Action = require('./Action'); const Collection = require('../../util/Collection'); const { Events } = require('../../util/Constants'); class MessageDeleteBulkAction extends Action { handle(data) { const client = this.client; const channel = client.channels.get(data.channel_id); if (channel) { const ids = data.ids; const messages = new Collection(); for (const id of ids) { const message = this.getMessage({ id, guild_id: data.guild_id, }, channel, false); if (message) { message.deleted = true; messages.set(message.id, message); channel.messages.delete(id); } } /** * Emitted whenever messages are deleted in bulk. * @event Client#messageDeleteBulk * @param {Collection} messages The deleted messages, mapped by their ID */ if (messages.size > 0) client.emit(Events.MESSAGE_BULK_DELETE, messages); return { messages }; } return {}; } } module.exports = MessageDeleteBulkAction;