From 99d72a25cd3d682410e16b45eaeeef18b2750220 Mon Sep 17 00:00:00 2001 From: Skillz Date: Sun, 16 Aug 2020 16:30:37 -0400 Subject: [PATCH] improve reaction event data when uncached --- src/module/shardingManager.ts | 11 +++++++++-- src/types/message.ts | 6 ++++++ src/types/options.ts | 6 +++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/module/shardingManager.ts b/src/module/shardingManager.ts index 1c95f1935..a9fd6b59b 100644 --- a/src/module/shardingManager.ts +++ b/src/module/shardingManager.ts @@ -539,14 +539,21 @@ export async function handleDiscordPayload( ); } + const uncachedOptions = { + ...options, + id: options.message_id, + channelID: options.channel_id, + guildID: options.guild_id + } + return isAdd ? eventHandlers.reactionAdd?.( - message || options, + message || uncachedOptions, options.emoji, options.user_id, ) : eventHandlers.reactionRemove?.( - message || options, + message || uncachedOptions, options.emoji, options.user_id, ); diff --git a/src/types/message.ts b/src/types/message.ts index a7e879da0..1fff0f9ba 100644 --- a/src/types/message.ts +++ b/src/types/message.ts @@ -319,6 +319,12 @@ export interface MessageReactionPayload extends BaseMessageReactionPayload { emoji: ReactionPayload; } +export interface MessageReactionUncachedPayload extends MessageReactionPayload { + id: string; + channelID: string; + guildID?: string; +} + export interface MessageReactionRemoveEmojiPayload extends BaseMessageReactionPayload { /** The emoji that was removed. */ diff --git a/src/types/options.ts b/src/types/options.ts index 47646fdcd..6cec21fd6 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -10,12 +10,12 @@ import { Role } from "../structures/role.ts"; import { Message } from "../structures/message.ts"; import { PartialMessage, - MessageReactionPayload, ReactionPayload, BaseMessageReactionPayload, MessageReactionRemoveEmojiPayload, Embed, Attachment, + MessageReactionUncachedPayload, } from "./message.ts"; import { Channel } from "../structures/channel.ts"; import { Guild } from "../structures/guild.ts"; @@ -118,12 +118,12 @@ export interface EventHandlers { rawGateway?: (data: unknown) => unknown; ready?: () => unknown; reactionAdd?: ( - message: Message | MessageReactionPayload, + message: Message | MessageReactionUncachedPayload, emoji: ReactionPayload, userID: string, ) => unknown; reactionRemove?: ( - message: Message | MessageReactionPayload, + message: Message | MessageReactionUncachedPayload, emoji: ReactionPayload, userID: string, ) => unknown;