https://github.com/cbrra/discord.js-embedpagination
Allows you to create a simple and fully customizable embed pagination with discord.js v14.
https://github.com/cbrra/discord.js-embedpagination
Last synced: 3 months ago
JSON representation
Allows you to create a simple and fully customizable embed pagination with discord.js v14.
- Host: GitHub
- URL: https://github.com/cbrra/discord.js-embedpagination
- Owner: Cbrra
- License: mit
- Created: 2022-05-01T15:51:09.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-05-08T12:05:38.000Z (about 3 years ago)
- Last Synced: 2024-04-25T06:02:25.094Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 52.7 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EmbedPagination
## About
Allows you to create a simple and fully customizable embed pagination with [discord.js](https://github.com/discordjs/discord.js/) v14.## Help
Need help ? Join my [Discord server](https://discord.gg/d8DTUfT) and send me a private message ! (Cobra//#5239 ; 619838036846575617)## Docs
Create the pagination instance with your discord's client's user's id
```js
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
```js
setUserId(userId: Snowflake, errorMessage?: string): this
```Set the interaction or the message
```js
.setInteraction(interaction): this
or
.setMessage(message): this
```Set the longevity (default to 1_200_000)
```js
.setTime(time: number): this
```Set the navigation buttons labels
```js
.setLabels(label0: string, label1: string): this
```Set additionnal rows to the message
```js
.setRows(rows: ActionRowBuilder[]): this
```Add an embed
```js
addEmbed(embed: EmbedBuilder | ((instance: this) => EmbedBuilder)): this
```Set embeds
```js
setEmbeds(embeds: (EmbedBuilder | ((instance: this) => EmbedBuilder))[]): this
```Add a button
```js
addButton(button: PaginationButton): this
```Set buttons
```js
setButtons(buttons: PaginationButton[]): this
```If true and if the pagination only contains 1 page, remove the navigation buttons
```js
autoRemoveUpdateButtons(value: boolean): this
```Disable the navigation buttons
```js
disableUpdateButtons(state: boolean): this
```Disable all the message components at the end of the collector
```js
disableAtEnd(state: boolean): this
```Set a callback executed at each page change
```js
setUpdateCallback(callback: (instance: this, p: number) => void): this
```Set a callback for your custom components
```js
setSpecialCallback(callback: (instance: this, i: MessageComponentInteraction | SelectMenuInteraction) => void): this
```Update the pagination
```js
update(): void
```Start the pagination
```js
start(page?: number): Promise
```Change the current page of the pagination (can be use in the callbacks)
```js
changePage(type: string, interaction: MessageComponentInteraction): void
```## Basic Example (Slash Command)
```js
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:![]()