diff --git a/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts b/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts index 7398a5132e..409e19106f 100644 --- a/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts +++ b/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts @@ -31,6 +31,7 @@ import type { PaginatedMessageOptions, PaginatedMessagePage, PaginatedMessageSelectMenuOptionsFunction, + PaginatedMessageStopReasons, PaginatedMessageWrongUserInteractionReplyFunction } from './PaginatedMessageTypes'; import { actionIsButtonOrMenu, createPartitionedMessageRow, isMessageButtonInteraction, safelyReplyToInteraction } from './utils'; @@ -1142,9 +1143,17 @@ export class PaginatedMessage { * Handles the `end` event from the collector. * @param reason The reason for which the collector was ended. */ - protected async handleEnd(_: Collection, reason: string): Promise { + protected async handleEnd( + _: Collection, + reason: PaginatedMessageStopReasons + ): Promise { // Ensure no race condition can occur where interacting with the message when the paginated message closes would otherwise result in a DiscordAPIError - if (this.response !== null && isAnyInteraction(this.response) && this.response.isMessageComponent()) { + if ( + (reason === 'time' || reason === 'idle') && + this.response !== null && + isAnyInteraction(this.response) && + this.response.isMessageComponent() + ) { this.response.message = await this.response.fetchReply(); } diff --git a/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts b/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts index 6922bf0514..c710106014 100644 --- a/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts +++ b/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts @@ -198,3 +198,15 @@ export interface SafeReplyToInteractionParameters