mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 01:23:31 +01:00
feat: add Message#bulkDeletable (#8760)
* feat: add `Message#bulkDeletable` * feat: add requested changes * fix: add check for `ManageMessages` permission * fix: `.permissionsFor()` exist only in guild channels * feat: apply requested changes * types: add type * fix: do not return `undefined` * fix: add property to docs Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -22,7 +22,7 @@ const { Sticker } = require('./Sticker');
|
||||
const { DiscordjsError, ErrorCodes } = require('../errors');
|
||||
const ReactionManager = require('../managers/ReactionManager');
|
||||
const { createComponent } = require('../util/Components');
|
||||
const { NonSystemMessageTypes } = require('../util/Constants');
|
||||
const { NonSystemMessageTypes, MaxBulkDeletableMessageAge } = require('../util/Constants');
|
||||
const MessageFlagsBitField = require('../util/MessageFlagsBitField');
|
||||
const PermissionsBitField = require('../util/PermissionsBitField');
|
||||
const { cleanContent, resolvePartialEmoji } = require('../util/Util');
|
||||
@@ -611,6 +611,25 @@ class Message extends Base {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the message is bulk deletable by the client user
|
||||
* @type {boolean}
|
||||
* @readonly
|
||||
* @example
|
||||
* // Filter for bulk deletable messages
|
||||
* channel.bulkDelete(messages.filter(message => message.bulkDeletable));
|
||||
*/
|
||||
get bulkDeletable() {
|
||||
const permissions = this.channel?.permissionsFor(this.client.user);
|
||||
return (
|
||||
(this.inGuild() &&
|
||||
Date.now() - this.createdTimestamp < MaxBulkDeletableMessageAge &&
|
||||
this.deletable &&
|
||||
permissions?.has(PermissionFlagsBits.ManageMessages, false)) ??
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the message is pinnable by the client user
|
||||
* @type {boolean}
|
||||
|
||||
Reference in New Issue
Block a user