mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
feat: Add "deleted" property to multiple structures. (#2556)
* Add "deleted" property to "Message" structure * Add "deleted" property to Multiple structures Structures edited: - Channel - Emoji - Guild - Guild Member - Role * Update "deletable" getter * Fix ESLint "no-trailing-spaces" errors * Requested Change: Mark w/ bulkDelete
This commit is contained in:
@@ -13,6 +13,7 @@ class ChannelDeleteAction extends Action {
|
||||
|
||||
if (channel) {
|
||||
client.channels.remove(channel.id);
|
||||
channel.deleted = true;
|
||||
client.emit(Events.CHANNEL_DELETE, channel);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ class GuildDeleteAction extends Action {
|
||||
|
||||
// Delete guild
|
||||
client.guilds.remove(guild.id);
|
||||
guild.deleted = true;
|
||||
client.emit(Events.GUILD_DELETE, guild);
|
||||
this.deleted.set(guild.id, guild);
|
||||
this.scheduleForDeletion(guild.id);
|
||||
|
||||
@@ -4,6 +4,7 @@ const { Events } = require('../../util/Constants');
|
||||
class GuildEmojiDeleteAction extends Action {
|
||||
handle(emoji) {
|
||||
emoji.guild.emojis.remove(emoji.id);
|
||||
emoji.deleted = true;
|
||||
this.client.emit(Events.GUILD_EMOJI_DELETE, emoji);
|
||||
return { emoji };
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ class GuildMemberRemoveAction extends Action {
|
||||
guild.memberCount--;
|
||||
if (member) {
|
||||
guild.voiceStates.delete(member.id);
|
||||
member.deleted = true;
|
||||
guild.members.remove(member.id);
|
||||
if (client.status === Status.READY) client.emit(Events.GUILD_MEMBER_REMOVE, member);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ class GuildRoleDeleteAction extends Action {
|
||||
role = guild.roles.get(data.role_id);
|
||||
if (role) {
|
||||
guild.roles.remove(data.role_id);
|
||||
role.deleted = true;
|
||||
client.emit(Events.GUILD_ROLE_DELETE, role);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ class MessageDeleteAction extends Action {
|
||||
message = channel.messages.get(data.id);
|
||||
if (message) {
|
||||
channel.messages.delete(message.id);
|
||||
message.deleted = true;
|
||||
client.emit(Events.MESSAGE_DELETE, message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ class MessageDeleteBulkAction extends Action {
|
||||
for (const id of ids) {
|
||||
const message = channel.messages.get(id);
|
||||
if (message) {
|
||||
message.deleted = true;
|
||||
messages.set(message.id, message);
|
||||
channel.messages.delete(id);
|
||||
}
|
||||
|
||||
@@ -23,6 +23,12 @@ class Channel extends Base {
|
||||
*/
|
||||
this.type = type ? type.toLowerCase() : 'unknown';
|
||||
|
||||
/**
|
||||
* Whether the channel has been deleted
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.deleted = false;
|
||||
|
||||
if (data) this._patch(data);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,12 @@ class Emoji extends Base {
|
||||
* @type {?Snowflake}
|
||||
*/
|
||||
this.id = emoji.id;
|
||||
|
||||
/**
|
||||
* Whether this emoji has been deleted
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.deleted = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -50,6 +50,12 @@ class Guild extends Base {
|
||||
*/
|
||||
this.presences = new PresenceStore(this.client);
|
||||
|
||||
/**
|
||||
* Whether the bot has been removed from the guild
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.deleted = false;
|
||||
|
||||
if (!data) return;
|
||||
if (data.unavailable) {
|
||||
/**
|
||||
|
||||
@@ -39,6 +39,12 @@ class GuildMember extends Base {
|
||||
*/
|
||||
this.lastMessageChannelID = null;
|
||||
|
||||
/**
|
||||
* Whether the member has been removed from the guild
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.deleted = false;
|
||||
|
||||
this._roles = [];
|
||||
if (data) this._patch(data);
|
||||
}
|
||||
|
||||
@@ -157,6 +157,12 @@ class Message extends Base {
|
||||
* @private
|
||||
*/
|
||||
this._edits = [];
|
||||
|
||||
/**
|
||||
* Whether this message has been deleted
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.deleted = false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -341,9 +347,9 @@ class Message extends Base {
|
||||
* @readonly
|
||||
*/
|
||||
get deletable() {
|
||||
return this.author.id === this.client.user.id || (this.guild &&
|
||||
return !this.deleted && (this.author.id === this.client.user.id || (this.guild &&
|
||||
this.channel.permissionsFor(this.client.user).has(Permissions.FLAGS.MANAGE_MESSAGES)
|
||||
);
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -69,6 +69,12 @@ class Role extends Base {
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.mentionable = data.mentionable;
|
||||
|
||||
/**
|
||||
* Whether the role has been deleted
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.deleted = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user