djs-embedpagination
v1.0.2
Published
Allows you to create a simple and fully customizable embed pagination with discord.js v14.
Maintainers
Readme
EmbedPagination
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): thisSet the interaction or the message
.setInteraction(interaction): this
or
.setMessage(message): thisSet the longevity (default to 1_200_000)
.setTime(time: number): thisSet the navigation buttons labels
.setLabels(label0: string, label1: string): thisSet additionnal rows to the message
.setRows(rows: ActionRowBuilder<ButtonBuilder | SelectMenuBuilder>[]): thisAdd an embed
addEmbed(embed: EmbedBuilder | ((instance: this) => EmbedBuilder)): thisSet embeds
setEmbeds(embeds: (EmbedBuilder | ((instance: this) => EmbedBuilder))[]): thisAdd a button
addButton(button: PaginationButton): thisSet buttons
setButtons(buttons: PaginationButton[]): thisIf true and if the pagination only contains 1 page, remove the navigation buttons
autoRemoveUpdateButtons(value: boolean): thisDisable the navigation buttons
disableUpdateButtons(state: boolean): thisDisable all the message components at the end of the collector
disableAtEnd(state: boolean): thisSet a callback executed at each page change
setUpdateCallback(callback: (instance: this, p: number) => void): thisSet a callback for your custom components
setSpecialCallback(callback: (instance: this, i: MessageComponentInteraction | SelectMenuInteraction) => void): thisUpdate the pagination
update(): voidStart 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): voidBasic 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:
