From 638b896efaf0a01b477f91c17170214ad96b1602 Mon Sep 17 00:00:00 2001 From: Jiralite <33201955+Jiralite@users.noreply.github.com> Date: Fri, 24 May 2024 14:09:59 +0100 Subject: [PATCH] fix: Throw error on no message id for `Message#fetchReference()` (#10295) * docs(MessageReference): ? is nullable, not `undefined` * docs(MessageReference): sort by message type * fix(Message): add throw * docs(MessageReference): fix English --------- Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/discord.js/src/structures/Message.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/discord.js/src/structures/Message.js b/packages/discord.js/src/structures/Message.js index 173f7edd8..79d6d78d7 100644 --- a/packages/discord.js/src/structures/Message.js +++ b/packages/discord.js/src/structures/Message.js @@ -354,15 +354,15 @@ class Message extends Base { * Reference data sent in a message that contains ids identifying the referenced message. * This can be present in the following types of message: * * Crossposted messages (`MessageFlags.Crossposted`) - * * {@link MessageType.ChannelFollowAdd} * * {@link MessageType.ChannelPinnedMessage} + * * {@link MessageType.ChannelFollowAdd} * * {@link MessageType.Reply} * * {@link MessageType.ThreadStarterMessage} * @see {@link https://discord.com/developers/docs/resources/channel#message-types} * @typedef {Object} MessageReference - * @property {Snowflake} channelId The channel's id the message was referenced - * @property {?Snowflake} guildId The guild's id the message was referenced - * @property {?Snowflake} messageId The message's id that was referenced + * @property {Snowflake} channelId The channel id that was referenced + * @property {Snowflake|undefined} guildId The guild id that was referenced + * @property {Snowflake|undefined} messageId The message id that was referenced */ if ('message_reference' in data) { @@ -708,6 +708,7 @@ class Message extends Base { async fetchReference() { if (!this.reference) throw new DiscordjsError(ErrorCodes.MessageReferenceMissing); const { channelId, messageId } = this.reference; + if (!messageId) throw new DiscordjsError(ErrorCodes.MessageReferenceMissing); const channel = this.client.channels.resolve(channelId); if (!channel) throw new DiscordjsError(ErrorCodes.GuildChannelResolve); const message = await channel.messages.fetch(messageId);