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:
Braxton
2018-05-28 18:42:51 -04:00
committed by Isabella
parent 27fcb64187
commit f0c4d0e834
13 changed files with 45 additions and 2 deletions

View File

@@ -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);
}

View File

@@ -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;
}
/**

View File

@@ -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) {
/**

View File

@@ -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);
}

View File

@@ -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)
);
));
}
/**

View File

@@ -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;
}
/**