@salty-coder/discordjs-pagination
v2.7.10
Published
An updated pagination module for Discord.js v14
Maintainers
Readme
❓discordjs-pagination
An advanced module with quick setup and different options to implement pagination system for Discord.js. This package is updated to no longer include depreciated attributes.
This is a fork of the project devRael1/discordjs-pagination which was archived in 2024.I wish to take on this project and keep it updated, to be optimised for the latest Discord.js versions.
📥 Installation
To install this module type the following command in your console:
npm install @salty-coder/discordjs-pagination⚙️ Pagination Module Options
| Options Object Name | Default Type | Description |
|:--------------------|:----------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------|
| client | Client | Bot client, only useful if time >= 900000 (i.e greater than 15 minutes) |
| interaction | MessageComponentInteraction orCommandInteraction | Interaction to reply with the pagination system (The interaction can be deferred or replied) |
| message | Message | Message Object to send the pagination system |
| ephemeral | boolean | If the returned message should be ephemeral (Can only use in Interaction) |
| embeds | Embed[] | Array of embeds to paginate |
| author | User | Author's user class |
| buttons | Buttons[] | Customization of your buttons See examples below |
| disableButtons | boolean | Disable or remove buttons after timeout (true = disable, false = remove) |
| deleteAtEnd | boolean | Delete or not the embed or message after timeout (true = remove, false = keep) |
| pageTravel | boolean | Travel pages by sending page numbers (With Modal Interaction) |
| fastSkip | boolean | Create two additional buttons, a button to skip to the end and a button to skip to the first page |
| time | number | How long before pagination get disabled (in ms) |
| max | number | Maximum interactions with buttons before disabling the pagination |
| customFilter | boolean | Custom filter for message component collector Must return boolean |
⬇️ Examples
Declare & Use Pagination System
/** Decalre the module */
const {pagination, ButtonTypes, ButtonStyles} = require('@salty-coder/discordjs-pagination');
/** Use pagination system */
await pagination({
/** Pagination options here */
});Use pagination System with custom buttons
await pagination({
embeds: arrayEmbeds, /** Array of embeds objects */
author: interaction.member.user,
interaction: interaction,
ephemeral: true,
time: 40000, /** 40 seconds */
disableButtons: false, /** Remove buttons after timeout */
fastSkip: false,
pageTravel: false,
buttons: [
{
type: ButtonTypes.previous,
label: 'Previous Page',
style: ButtonStyles.Primary
},
{
type: ButtonTypes.next,
label: 'Next Page',
style: ButtonStyles.Success
}
]
});Use pagination System with custom buttons and custom filter
await pagination({
interaction: interaction,
embeds: arrayEmbeds,
author: interaction.member.user,
time: 40000,
fastSkip: false,
disableButtons: true,
pageTravel: false,
/** Enable buttons pagination system only for member with ID: 123456789 */
customFilter: (interaction: CommandInteraction|MessageComponentInteraction) => {
return interaction.member.user.id === '123456789';
},
buttons: [
{
type: ButtonTypes.previous,
label: 'Previous Page',
style: ButtonStyles.Success,
emoji: '◀️'
},
{
type: ButtonTypes.next,
label: 'Next Page',
style: ButtonStyles.Success,
emoji: null /** Disable emoji for this button */
}
]
});🐛 Bug Reports
If you have any bugs or trouble setting the module up, feel free to open an issue on GitHub Repository
🗃️ Old Versions
If you want to use old version, you can use command
npm install @salty-coder/discordjs-pagination@<version>🧾 TODO
- Create new
customComponentsparameter to let the user choose to add buttons / selections menus in the components of the pagination system. - Create new
Screenshotssection in README and show examples - Make the package compatible so that it takes into account an array of
Messageobjects and not only an array ofEmbedobjects.
📝 License
Copyright © 2022 devRael1 This project is MIT licensed. This is not an official Discord product. It is not affiliated with or endorsed by Discord Inc.
