djs-embedpagination
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

EmbedPagination

Discord server npm version

About

Allows you to create a simple and fully customizable embed pagination with discord.js v14.

Help

Need help ? Join my Discord server and send me a private message ! (Cobra//#5239 ; 619838036846575617)

Docs

Create the pagination instance with your discord's client's user's id

new EmbedPagination(clientId: string)

Set the user who own this pagination, and the optional error message for others
If no errorMessage provided, everyone can use the pagination

setUserId(userId: Snowflake, errorMessage?: string): this

Set the interaction or the message

.setInteraction(interaction): this
or
.setMessage(message): this

Set the longevity (default to 1_200_000)

.setTime(time: number): this

Set the navigation buttons labels

.setLabels(label0: string, label1: string): this

Set additionnal rows to the message

.setRows(rows: ActionRowBuilder<ButtonBuilder | SelectMenuBuilder>[]): this

Add an embed

addEmbed(embed: EmbedBuilder | ((instance: this) => EmbedBuilder)): this

Set embeds

setEmbeds(embeds: (EmbedBuilder | ((instance: this) => EmbedBuilder))[]): this

Add a button

addButton(button: PaginationButton): this

Set buttons

setButtons(buttons: PaginationButton[]): this

If true and if the pagination only contains 1 page, remove the navigation buttons

autoRemoveUpdateButtons(value: boolean): this

Disable the navigation buttons

disableUpdateButtons(state: boolean): this

Disable all the message components at the end of the collector

disableAtEnd(state: boolean): this

Set a callback executed at each page change

setUpdateCallback(callback: (instance: this, p: number) => void): this

Set a callback for your custom components

setSpecialCallback(callback: (instance: this, i: MessageComponentInteraction | SelectMenuInteraction) => void): this

Update the pagination

update(): void

Start the pagination

start(page?: number): Promise<void>

Change the current page of the pagination (can be use in the callbacks)

changePage(type: string, interaction: MessageComponentInteraction): void

Basic Example (Slash Command)

const { EmbedBuilder, ButtonBuilder, ButtonStyle } = require("discord.js");
const { EmbedPagination } = require("djs-embedpagination");

const embed = new EmbedBuilder()
    .setColor("#2a90fe")
    .setTitle("First embed")
    .setDescription("If you see this, the embedpagination works !");

const embed2 = new EmbedBuilder()
    .setColor("#2a90fe")
    .setTitle("Second embed")
    .setDescription("Hello world !");

new EmbedPagination(client.user.id)
    .setUserId(interaction.user.id, "You can't interact with this message !")
    .setInteraction(interaction)
    .setLabels("Previous Page", "Next Page")
    .setEmbeds([embed, embed2])
    .addButton({
        position: "Right",
        button: new ButtonBuilder()
            .setCustomId("custom-button")
            .setLabel("Custom button")
            .setStyle(ButtonStyle.Secondary)
    })
    .setSpecialCallback((instance, i) => i.reply("Clicked !"))
    .start();

Result:

Package Sidebar

Install

npm i djs-embedpagination

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

38 kB

Total Files

7

Last publish

Collaborators

  • cbrra