feat(MessageReaction): add remove method and Client#messageReactionRemoveEmoji (#3723)

* Add support for MessageReaction#remove and MESSAGE_REACTION_REMOVE_EMOJI

* Remove reaction from cache

Co-Authored-By: matthewfripp <50251454+matthewfripp@users.noreply.github.com>

* fix: message may be partial

* Clarify what the event entails

* Document client in MessageReaction

Co-Authored-By: SpaceEEC <spaceeec@yahoo.com>

* await the REST call

* Add MessageReaction#remove to typings

Co-authored-by: matthewfripp <50251454+matthewfripp@users.noreply.github.com>
Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
This commit is contained in:
BorgerKing
2020-01-25 14:00:53 -05:00
committed by SpaceEEC
parent d8b4725caa
commit 030d263a9e
7 changed files with 56 additions and 1 deletions

View File

@@ -15,6 +15,13 @@ class MessageReaction {
* @param {Message} message The message the reaction refers to
*/
constructor(client, data, message) {
/**
* The client that instantiated this message reaction
* @name MessageReaction#client
* @type {Client}
* @readonly
*/
Object.defineProperty(this, 'client', { value: client });
/**
* The message that this reaction refers to
* @type {Message}
@@ -47,6 +54,16 @@ class MessageReaction {
if (this.count == undefined) this.count = data.count;
}
/**
* Removes all users from this reaction.
* @returns {Promise<MessageReaction>}
*/
async remove() {
await this.client.api.channels(this.message.channel.id).messages(this.message.id).reactions(this._emoji.identifier)
.delete();
return this;
}
/**
* The emoji of this reaction, either an GuildEmoji object for known custom emojis, or a ReactionEmoji
* object which has fewer properties. Whatever the prototype of the emoji, it will still have