feat(Partials): add DMChannel/MessageReaction#fetch() and PartialTypes.REACTION (#3474)

* add DMChannel#fetch() & Action#getChannel({recipients})

* ref for MessageReaction partial

* typings

* add PartialTypes.REACTION

* accommodate for fully removed reactions

* fix incorrect wording and typo

* typings: MessageReaction#count is nullable

* typings: mark MessageReaction#partial as readonly

Co-Authored-By: Vlad Frangu <kingdgrizzle@gmail.com>

* fix(User): fetch dm channel if cached one is partial

* docs: add missing comma

Co-Authored-By: Antonio Román <kyradiscord@gmail.com>

* fix: accomodate for new reactions

* fix: updating existing/new count on _patch

* docs: typo

* for consistency

Co-authored-by: Vlad Frangu <kingdgrizzle@gmail.com>
Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
Co-authored-by: Antonio Román <kyradiscord@gmail.com>
This commit is contained in:
izexi
2020-01-05 15:45:49 +00:00
committed by SpaceEEC
parent bf31b28ad9
commit 6af0da1043
9 changed files with 82 additions and 15 deletions

View File

@@ -36,6 +36,7 @@ class GenericAction {
return data.channel || this.getPayload({
id,
guild_id: data.guild_id,
recipients: [data.author || { id: data.user_id }],
}, this.client.channels, id, PartialTypes.CHANNEL);
}
@@ -52,9 +53,9 @@ class GenericAction {
const id = data.emoji.id || decodeURIComponent(data.emoji.name);
return this.getPayload({
emoji: data.emoji,
count: 0,
count: message.partial ? null : 0,
me: user.id === this.client.user.id,
}, message.reactions, id, PartialTypes.MESSAGE);
}, message.reactions, id, PartialTypes.REACTION);
}
getMember(data, guild) {

View File

@@ -2,6 +2,7 @@
const Action = require('./Action');
const { Events } = require('../../util/Constants');
const { PartialTypes } = require('../../util/Constants');
/*
{ user_id: 'id',
@@ -26,11 +27,13 @@ class MessageReactionAdd extends Action {
if (!message) return false;
// Verify reaction
if (message.partial && !this.client.options.partials.includes(PartialTypes.REACTION)) return false;
const reaction = message.reactions.add({
emoji: data.emoji,
count: 0,
count: message.partial ? null : 0,
me: user.id === this.client.user.id,
});
if (!reaction) return false;
reaction._add(user);
/**
* Emitted whenever a reaction is added to a cached message.