UNPKG

@novelbrasil/discord.js-embed-menu

Version:

Easily create Discord.js embed menus with reactions and unlimited customisable pages.

50 lines (49 loc) 1.81 kB
import { EventEmitter } from 'events'; import { User, Message, EmbedBuilder, ReactionCollector, BaseInteraction, TextBasedChannel, CommandInteraction, InteractionResponse, MessageComponentInteraction } from 'discord.js'; import { ButtonType, DiscordEmbedMenuPage } from './discord_embed_menu_page'; type DiscordEmbedMenuType = { name: string; content: EmbedBuilder; reactions: { [key: string]: string; }; buttons?: Record<string, ButtonType>; index: number; }; type StartOptions = { send: boolean; followUp: boolean; reply: boolean; }; export declare class DiscordEmbedMenu extends EventEmitter { private static readonly REQUIRED_PERMS; private static LOADING_MESSAGE; interaction: CommandInteraction; channel: TextBasedChannel; user: User; pages: any[]; timeout: number; deleteOnTimeout: boolean; mention: boolean; keepUserReactionOnStop: boolean; loadingMessage: string; private isDM; private userTag; currentPage: DiscordEmbedMenuPage; pageIndex: number; menu: Message | InteractionResponse | null; reactionCollector: ReactionCollector | null; componentCollector: MessageComponentInteraction | null; data: any; constructor(interaction: BaseInteraction, pages: (DiscordEmbedMenuType | DiscordEmbedMenuPage)[], timeout?: number, deleteOnTimeout?: boolean, mention?: boolean, keepUserReactionOnStop?: boolean, loadingMessage?: string); start(options: StartOptions): Promise<void>; stop(): Promise<void | Message>; delete(): Promise<void | Message>; private clearReactions; setPage(page?: number | string, options?: StartOptions): Promise<void>; private addReactions; private stopReactions; private awaitButtons; private awaitReactions; } export {};