Class: PaginatedMessageEmbedFields
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:30
This is a utility of PaginatedMessage, except it exclusively paginates the fields of an embed. You must either use this class directly or extend it.
It differs from PaginatedFieldMessageEmbed as the items here are whole fields, that are added to the embed, whereas PaginatedFieldMessageEmbed concatenates the items in a single field with a given formatter function.
Example
import { PaginatedMessageEmbedFields } from '@sapphire/discord.js-utilities';
new PaginatedMessageEmbedFields()
.setTemplate({ title: 'Test pager embed', color: '#006080' })
.setItems([
{ name: 'Sapphire Framework', value: 'discord.js Framework' },
{ name: 'Sapphire Framework 2', value: 'discord.js Framework 2' },
{ name: 'Sapphire Framework 3', value: 'discord.js Framework 3' }
])
.setItemsPerPage(2)
.make()
.run(message);
Extends
Constructors
new PaginatedMessageEmbedFields()
new PaginatedMessageEmbedFields(
__namedParameters
:PaginatedMessageOptions
):PaginatedMessageEmbedFields
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:517
The constructor
field represents the constructor of the PaginatedMessage
interface.
It is of type typeof PaginatedMessage
, which means it refers to the type of the PaginatedMessage
interface itself.
Parameters
Parameter | Type | Description |
---|---|---|
__namedParameters | PaginatedMessageOptions | The PaginatedMessageOptions for this instance of the PaginatedMessage class |
Returns
Inherited from
Properties
#thisMazeWasNotMeantForYouContent
private
readonly
#thisMazeWasNotMeantForYouContent:object
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:510
The response we send when someone gets into an invalid flow
content
content:
string
="This maze wasn't meant for you...what did you do."
Inherited from
PaginatedMessage
.#thisMazeWasNotMeantForYouContent
actions
actions:
Map
<string
,PaginatedMessageAction
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:402
The actions which are to be used.
Inherited from
collector
collector:
null
|InteractionCollector
<PaginatedMessageInteractionUnion
> =null
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:392
The collector used for handling component interactions.
Inherited from
constructor
constructor: typeof
PaginatedMessage
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1844
The constructor
field represents the constructor of the PaginatedMessage
interface.
It is of type typeof PaginatedMessage
, which means it refers to the type of the PaginatedMessage
interface itself.
Inherited from
PaginatedMessage.constructor
embedFooterSeparator
embedFooterSeparator:
string
=PaginatedMessage.embedFooterSeparator
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:439
Custom separator to show after the page index in the embed footer.
PaginatedMessage will automatically add a space (
) after the given text. You do not have to add it yourself.
Default
PaginatedMessage.embedFooterSeparator
(static property)
Inherited from
PaginatedMessage
.embedFooterSeparator
embedTemplate
private
embedTemplate:APIEmbed
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:35
The embedTemplate
field represents the template for the embed message. It is of type APIEmbed
.
It is initialized with a new EmbedBuilder
instance converted to JSON.
emitPartialDMChannelWarning
emitPartialDMChannelWarning:
boolean
=PaginatedMessage.emitPartialDMChannelWarning
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:453
Whether to emit the warning about running a PaginatedMessage in a DM channel without the client having the 'CHANNEL'
partial.
Remark
When using message based commands (as opposed to Application Commands) then you will also need to specify the DIRECT_MESSAGE
intent for PaginatedMessage to work.
Default
PaginatedMessage.emitPartialDMChannelWarning
(static property)
Inherited from
PaginatedMessage
.emitPartialDMChannelWarning
hasEmittedMaxPageWarning
protected
hasEmittedMaxPageWarning:boolean
=false
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:473
Tracks whether a warning was already emitted for this PaginatedMessage concerning the maximum amount of pages in the SelectMenu.
Default
false
Inherited from
PaginatedMessage
.hasEmittedMaxPageWarning
hasEmittedPartialDMChannelWarning
protected
hasEmittedPartialDMChannelWarning:boolean
=false
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:483
Tracks whether a warning was already emitted for this PaginatedMessage
concerning the PaginatedMessage being called in a DMChannel
without the client having the 'Channel'
partial.
Remark
When using message based commands (as opposed to Application Commands) then you will also need to specify the DIRECT_MESSAGE
intent for PaginatedMessage to work.
Default
false
Inherited from
PaginatedMessage
.hasEmittedPartialDMChannelWarning
idle
idle:
number
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:419
The amount of milliseconds to idle before the paginator is closed.
Default
14.5 minutes
Remark
This is to ensure it is a bit before interactions expire.
Inherited from
index
index:
number
=0
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:412
The handler's current page/message index.
Inherited from
items
private
items:EmbedField
[] =[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:46
The array of embed fields in the PaginatedMessageEmbedFields class.
itemsPerPage
private
itemsPerPage:number
=10
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:52
The itemsPerPage
field represents the number of items to be displayed per page. It is of type number
.
It is initialized to 10.
messages
messages: (
null
|PaginatedMessageResolvedPage
)[] =[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:397
The pages which were converted from PaginatedMessage.pages
Inherited from
pageActions
pageActions: (
null
|Map
<string
,PaginatedMessageAction
>)[] =[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:407
The page-specific actions which are to be used.
Inherited from
pageIndexPrefix
pageIndexPrefix:
string
=PaginatedMessage.pageIndexPrefix
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:432
Custom text to show in front of the page index in the embed footer.
PaginatedMessage will automatically add a space (
) after the given text. You do not have to add it yourself.
Default
PaginatedMessage.pageIndexPrefix
(static property)
Inherited from
PaginatedMessage
.pageIndexPrefix
pages
pages:
PaginatedMessagePage
[] =[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:382
The pages to be converted to PaginatedMessage.messages
Inherited from
paginatedMessageData
protected
paginatedMessageData:null
|Omit
<PaginatedMessageMessageOptionsUnion
,"components"
> =null
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:460
Data for the paginated message.
Inherited from
PaginatedMessage
.paginatedMessageData
response
response:
null
|Message
|AnyInteractableInteraction
=null
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:387
The response message used to edit on page changes.
Inherited from
selectMenuOptions
protected
selectMenuOptions:PaginatedMessageSelectMenuOptionsFunction
=PaginatedMessage.selectMenuOptions
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:500
Function that returns the select menu options for the paginated message.
Param
The paginated message.
Returns
The select menu options.
Inherited from
PaginatedMessage
.selectMenuOptions
selectMenuPlaceholder
protected
selectMenuPlaceholder:undefined
|string
=undefined
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:465
The placeholder for the select menu.
Inherited from
PaginatedMessage
.selectMenuPlaceholder
shouldAddFooterToEmbeds
protected
shouldAddFooterToEmbeds:boolean
=true
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:493
Determines whether the default footer that shows the current page number should be added to the embeds.
Note
If this is set to false, i.e.e through setShouldAddFooterToEmbeds, then embedFooterSeparator is never applied.
Default
true
Inherited from
PaginatedMessage
.shouldAddFooterToEmbeds
stopPaginatedMessageCustomIds
stopPaginatedMessageCustomIds:
string
[] =PaginatedMessage.stopPaginatedMessageCustomIds
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:445
A list of customId
that are bound to actions that will stop the PaginatedMessage
Default
PaginatedMessage.stopPaginatedMessageCustomIds
(static property)
Inherited from
PaginatedMessage
.stopPaginatedMessageCustomIds
template
template:
PaginatedMessageMessageOptionsUnion
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:425
The template for this PaginatedMessage. You can use templates to set defaults that will apply to each and every page in the PaginatedMessage
Inherited from
totalPages
private
totalPages:number
=0
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:41
The totalPages
field represents the total number of pages in the paginated message. It is of type number
.
It is initialized to 0.
wrongUserInteractionReply
protected
wrongUserInteractionReply:PaginatedMessageWrongUserInteractionReplyFunction
=PaginatedMessage.wrongUserInteractionReply
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:505
Function that handles the reply when a user interacts with the paginated message incorrectly.
Inherited from
PaginatedMessage
.wrongUserInteractionReply
defaultActions
static
defaultActions:PaginatedMessageAction
[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:143
The default actions of this handler.
Inherited from
PaginatedMessage
.defaultActions
deletionStopReasons
static
deletionStopReasons:string
[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:229
The reasons sent by InteractionCollector#end event when the message (or its owner) has been deleted.
Inherited from
PaginatedMessage
.deletionStopReasons
embedFooterSeparator
static
embedFooterSeparator:string
='•'
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:259
Custom separator for the page index in the embed footer.
Default
"•"
Remark
To overwrite this property change it somewhere in a "setup" file, i.e. where you also call client.login()
for your client.
Alternatively, you can also customize it on a per-PaginatedMessage basis by passing embedFooterSeparator
in the options of the constructor.
Example
import { PaginatedMessage } from '@sapphire/discord.js-utilities';
PaginatedMessage.embedFooterSeparator = '|';
// This will make the separator of the embed footer something like "Page 1/2 | Today at 4:20"
Inherited from
PaginatedMessage
.embedFooterSeparator
emitPartialDMChannelWarning
static
emitPartialDMChannelWarning:boolean
=true
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:209
Whether to emit the warning about running a PaginatedMessage in a DM channel without the client the 'CHANNEL'
partial.
Remark
When using message based commands (as opposed to Application Commands) then you will also need to specify the DIRECT_MESSAGE
intent for PaginatedMessage to work.
Remark
To overwrite this property change it somewhere in a "setup" file, i.e. where you also call client.login()
for your client.
Alternatively, you can also customize it on a per-PaginatedMessage basis by using paginatedMessageInstance.setEmitPartialDMChannelWarning(newBoolean)
Default
true
Inherited from
PaginatedMessage
.emitPartialDMChannelWarning
handlers
readonly
static
handlers:Map
<string
,PaginatedMessage
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:277
The current InteractionCollector handlers that are active. The key is the ID of of the author who sent the message that triggered this PaginatedMessage
This is to ensure that any given author can only trigger 1 PaginatedMessage. This is important for performance reasons, and users should not have more than 1 PaginatedMessage open at once.
Inherited from
messages
readonly
static
messages:Map
<string
,PaginatedMessage
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:268
The messages that are currently being handled by a PaginatedMessage The key is the ID of the message that triggered this PaginatedMessage
This is to ensure that only 1 PaginatedMessage can run on a specified message at once. This is important when having an editable commands solution.
Inherited from
pageIndexPrefix
static
pageIndexPrefix:string
=''
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:244
Custom text to show in front of the page index in the embed footer.
PaginatedMessage will automatically add a space (
) after the given text. You do not have to add it yourself.
Default
""
Remark
To overwrite this property change it somewhere in a "setup" file, i.e. where you also call client.login()
for your client.
Example
import { PaginatedMessage } from '@sapphire/discord.js-utilities';
PaginatedMessage.pageIndexPrefix = 'Page';
// This will make the footer of the embed something like "Page 1/2"
Inherited from
PaginatedMessage
.pageIndexPrefix
selectMenuOptions
static
selectMenuOptions:PaginatedMessageSelectMenuOptionsFunction
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:304
A generator for MessageSelectOption that will be used to generate the options for the StringSelectMenuBuilder. We do not allow overwriting the MessageSelectOption#value property with this, as it is vital to how we handle select menu interactions.
Param
The index of the page to add to the StringSelectMenuBuilder. We will add 1 to this number because our pages are 0 based, so this will represent the pages as seen by the user.
Default
{
label: `Page ${pageIndex}`
}
Remark
To overwrite this property change it in a "setup" file prior to calling client.login()
for your client.
Example
import { PaginatedMessage } from '@sapphire/discord.js-utilities';
PaginatedMessage.selectMenuOptions = (pageIndex) => ({
label: `Go to page: ${pageIndex}`,
description: 'This is a description'
});
Inherited from
PaginatedMessage
.selectMenuOptions
stopPaginatedMessageCustomIds
static
stopPaginatedMessageCustomIds:string
[]
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:223
A list of customId
that are bound to actions that will stop the PaginatedMessage
Default
['@sapphire/paginated-messages.stop']
Remark
To overwrite this property change it somewhere in a "setup" file, i.e. where you also call client.login()
for your client.
Alternatively, you can also customize it on a per-PaginatedMessage basis by using paginatedMessageInstance.setStopPaginatedMessageCustomIds(customIds)
Example
import { PaginatedMessage } from '@sapphire/discord.js-utilities';
PaginatedMessage.stopPaginatedMessageCustomIds = ['my-custom-stop-custom-id'];
Inherited from
PaginatedMessage
.stopPaginatedMessageCustomIds
wrongUserInteractionReply
static
wrongUserInteractionReply:PaginatedMessageWrongUserInteractionReplyFunction
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:351
A generator for MessageComponentInteraction#reply that will be called and sent whenever an untargeted user interacts with one of the buttons.
When modifying this it is recommended that the message is set to be ephemeral so only the user that is pressing the buttons can see them.
Furthermore, we also recommend setting allowedMentions: { users: [], roles: [] }
, so you don't have to worry about accidentally pinging anyone.
When setting just a string, we will add { ephemeral: true, allowedMentions: { users: [], roles: [] } }
for you.
Param
The User this PaginatedMessage was intended for.
Param
The User that actually clicked the button.
Default
import { userMention } from 'discord.js';
{
content: `Please stop interacting with the components on this message. They are only for ${userMention(targetUser.id)}.`,
ephemeral: true,
allowedMentions: { users: [], roles: [] }
}
Remark
To overwrite this property change it in a "setup" file prior to calling client.login()
for your client.
Examples
import { PaginatedMessage } from '@sapphire/discord.js-utilities';
import { userMention } from 'discord.js';
// We will add ephemeral and no allowed mention for string only overwrites
PaginatedMessage.wrongUserInteractionReply = (targetUser) =>
`These buttons are only for ${userMention(targetUser.id)}. Press them as much as you want, but I won't do anything with your clicks.`;
import { PaginatedMessage } from '@sapphire/discord.js-utilities';
import { userMention } from 'discord.js';
PaginatedMessage.wrongUserInteractionReply = (targetUser) => ({
content: `These buttons are only for ${userMention(
targetUser.id
)}. Press them as much as you want, but I won't do anything with your clicks.`,
ephemeral: true,
allowedMentions: { users: [], roles: [] }
});
Inherited from
PaginatedMessage
.wrongUserInteractionReply
Methods
addAction()
addAction(
action
:PaginatedMessageAction
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:708
Adds an action to the existing ones. This will be added as the last action.
Parameters
Parameter | Type | Description |
---|---|---|
action | PaginatedMessageAction | The action to add. |
Returns
this
See
PaginatedMessage.setActions for examples on how to structure the action.
Inherited from
addActions()
addActions(
actions
:PaginatedMessageAction
[]):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:698
Adds actions to the existing ones. The order given is the order they will be used.
Parameters
Parameter | Type | Description |
---|---|---|
actions | PaginatedMessageAction [] | The actions to add. |
Returns
this
See
PaginatedMessage.setActions for examples on how to structure the actions.
Inherited from
addAsyncPageBuilder()
addAsyncPageBuilder(
builder
:MessageBuilder
| (builder
:MessageBuilder
) =>Promise
<MessageBuilder
>):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:858
Adds a page to the existing ones asynchronously using a MessageBuilder. This wil be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
builder | MessageBuilder | (builder : MessageBuilder ) => Promise <MessageBuilder > | Either a callback whose first parameter is new MessageBuilder() , or an already constructed MessageBuilder |
Returns
this
Example
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const { EmbedBuilder } = require('discord.js');
const paginatedMessage = new PaginatedMessage()
.addAsyncPageBuilder(async (builder) => {
const someRemoteData = await fetch('https://contoso.com/api/users');
const embed = new EmbedBuilder()
.setColor('#FF0000')
.setDescription(someRemoteData.data);
return builder
.setContent('example content')
.setEmbeds([embed]);
});
Inherited from
PaginatedMessage
.addAsyncPageBuilder
addAsyncPageEmbed()
addAsyncPageEmbed(
embed
:EmbedResolvable
| (builder
:EmbedBuilder
) =>Awaitable
<EmbedResolvable
>):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:928
Adds a page to the existing ones asynchronously using a EmbedBuilder. This wil be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
embed | EmbedResolvable | (builder : EmbedBuilder ) => Awaitable <EmbedResolvable > | Either a callback whose first parameter is new EmbedBuilder() , or an already constructed EmbedBuilder |
Returns
this
Example
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const paginatedMessage = new PaginatedMessage()
.addAsyncPageEmbed(async (embed) => {
const someRemoteData = await fetch('https://contoso.com/api/users');
embed
.setColor('#FF0000')
.setDescription(someRemoteData.data);
return embed;
});
Inherited from
PaginatedMessage
.addAsyncPageEmbed
addAsyncPageEmbeds()
addAsyncPageEmbeds(
embeds
:EmbedResolvable
[] | (embed1
:EmbedBuilder
,embed2
:EmbedBuilder
,embed3
:EmbedBuilder
,embed4
:EmbedBuilder
,embed5
:EmbedBuilder
,embed6
:EmbedBuilder
,embed7
:EmbedBuilder
,embed8
:EmbedBuilder
,embed9
:EmbedBuilder
,embed10
:EmbedBuilder
) =>Awaitable
<EmbedResolvable
[]>):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1070
Adds a page to the existing ones using multiple EmbedBuilder's. This wil be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
embeds | EmbedResolvable [] | (embed1 : EmbedBuilder , embed2 : EmbedBuilder , embed3 : EmbedBuilder , embed4 : EmbedBuilder , embed5 : EmbedBuilder , embed6 : EmbedBuilder , embed7 : EmbedBuilder , embed8 : EmbedBuilder , embed9 : EmbedBuilder , embed10 : EmbedBuilder ) => Awaitable <EmbedResolvable []> | Either a callback which receives 10 parameters of new EmbedBuilder() , or an array of already constructed EmbedBuilder's |
Returns
this
Remark
When using this with a callback this will construct 10 EmbedBuilder's in the callback parameters, regardless of how many are actually used. If this a performance impact you do not want to cope with then it is recommended to use PaginatedMessage.addPageBuilder instead, which will let you add as many embeds as you want, albeit manually
Examples
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const paginatedMessage = new PaginatedMessage().addAsyncPageEmbeds(async (embed0, embed1, embed2) => {
const someRemoteData = (await fetch('https://contoso.com/api/users')) as any;
for (const [index, user] of Object.entries(someRemoteData.users.slice(0, 10)) as [`${0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10}`, any][]) {
switch (index) {
case '0': {
embed0.setColor('#FF0000').setDescription('example description 1').setAuthor(user.name);
break;
}
case '1': {
embed1.setColor('#00FF00').setDescription('example description 2').setAuthor(user.name);
break;
}
case '2': {
embed2.setColor('#0000FF').setDescription('example description 3').setAuthor(user.name);
break;
}
}
}
return [embed0, embed1, embed2];
});
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const embed1 = new EmbedBuilder()
.setColor('#FF0000')
.setDescription('example description 1');
const embed2 = new EmbedBuilder()
.setColor('#00FF00')
.setDescription('example description 2');
const embed3 = new EmbedBuilder()
.setColor('#0000FF')
.setDescription('example description 3');
const paginatedMessage = new PaginatedMessage()
.addAsyncPageEmbeds([embed1, embed2, embed3]); // You can add up to 10 embeds
Inherited from
PaginatedMessage
.addAsyncPageEmbeds
addPage()
addPage(
page
:PaginatedMessagePage
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:749
Adds a page to the existing ones. This will be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
page | PaginatedMessagePage | The page to add. |
Returns
this
Remark
While you can use this method you should first check out PaginatedMessage.addPageBuilder, PaginatedMessage.addPageContent and PaginatedMessage.addPageEmbed as these are easier functional methods of adding pages and will likely already suffice for your needs.
Inherited from
addPageAction()
addPageAction(
action
:PaginatedMessageAction
,index
:number
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1202
Add the provided action to a page.
Parameters
Parameter | Type | Description |
---|---|---|
action | PaginatedMessageAction | The action to add. |
index | number | The index of the page to add the action to. |
Returns
this
See
PaginatedMessage.setActions for examples on how to structure the action.
Remark
Internally we check if the provided index exists. This means that calling this function before calling any of the methods below this will not work as the amount of pages will always be 0, thus the index will always be out of bounds. That said, make sure you first define your pages and then define your actions for those pages.
- PaginatedMessage.addAsyncPageEmbed
- PaginatedMessage.addPageBuilder
- PaginatedMessage.addPageContent
- PaginatedMessage.addPageEmbed
- PaginatedMessage.addPageEmbeds
- PaginatedMessage.addPages
- PaginatedMessage.setPages
Inherited from
PaginatedMessage
.addPageAction
addPageActions()
addPageActions(
actions
:PaginatedMessageAction
[],index
:number
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1175
Add the provided actions to a page.
Parameters
Parameter | Type | Description |
---|---|---|
actions | PaginatedMessageAction [] | The actions to add. |
index | number | The index of the page to add the actions to. |
Returns
this
See
PaginatedMessage.setActions for examples on how to structure the actions.
Remark
Internally we check if the provided index exists. This means that calling this function before calling any of the methods below this will not work as the amount of pages will always be 0, thus the index will always be out of bounds. That said, make sure you first define your pages and then define your actions for those pages.
- PaginatedMessage.addAsyncPageEmbed
- PaginatedMessage.addPageBuilder
- PaginatedMessage.addPageContent
- PaginatedMessage.addPageEmbed
- PaginatedMessage.addPageEmbeds
- PaginatedMessage.addPages
- PaginatedMessage.setPages
Inherited from
PaginatedMessage
.addPageActions
addPageBuilder()
addPageBuilder(
builder
:MessageBuilder
| (builder
:MessageBuilder
) =>MessageBuilder
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:832
Adds a page to the existing ones using a MessageBuilder. This will be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
builder | MessageBuilder | (builder : MessageBuilder ) => MessageBuilder | Either a callback whose first parameter is new MessageBuilder() , or an already constructed MessageBuilder |
Returns
this
Examples
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const { EmbedBuilder } = require('discord.js');
const paginatedMessage = new PaginatedMessage()
.addPageBuilder((builder) => {
const embed = new EmbedBuilder()
.setColor('#FF0000')
.setDescription('example description');
return builder
.setContent('example content')
.setEmbeds([embed]);
});
const { EmbedBuilder } = require('discord.js');
const { MessageBuilder, PaginatedMessage } = require('@sapphire/discord.js-utilities');
const embed = new EmbedBuilder()
.setColor('#FF0000')
.setDescription('example description');
const builder = new MessageBuilder()
.setContent('example content')
.setEmbeds([embed]);
const paginatedMessage = new PaginatedMessage()
.addPageBuilder(builder);
Inherited from
PaginatedMessage
.addPageBuilder
addPageContent()
addPageContent(
content
:string
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:873
Adds a page to the existing ones using simple message content. This will be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
content | string | The content to set. |
Returns
this
Example
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const paginatedMessage = new PaginatedMessage()
.addPageContent('example content');
Inherited from
PaginatedMessage
.addPageContent
addPageEmbed()
addPageEmbed(
embed
:EmbedResolvable
| (embed
:EmbedBuilder
) =>EmbedResolvable
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:905
Adds a page to the existing ones using a EmbedBuilder. This wil be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
embed | EmbedResolvable | (embed : EmbedBuilder ) => EmbedResolvable | Either a callback whose first parameter is new EmbedBuilder() , or an already constructed EmbedBuilder |
Returns
this
Examples
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const paginatedMessage = new PaginatedMessage()
.addPageEmbed((embed) => {
embed
.setColor('#FF0000')
.setDescription('example description');
return embed;
});
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const embed = new EmbedBuilder()
.setColor('#FF0000')
.setDescription('example description');
const paginatedMessage = new PaginatedMessage()
.addPageEmbed(embed);
Inherited from
addPageEmbeds()
addPageEmbeds(
embeds
:EmbedResolvable
[] | (embed1
:EmbedBuilder
,embed2
:EmbedBuilder
,embed3
:EmbedBuilder
,embed4
:EmbedBuilder
,embed5
:EmbedBuilder
,embed6
:EmbedBuilder
,embed7
:EmbedBuilder
,embed8
:EmbedBuilder
,embed9
:EmbedBuilder
,embed10
:EmbedBuilder
) =>EmbedResolvable
[]):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:979
Adds a page to the existing ones asynchronously using multiple EmbedBuilder's. This wil be added as the last page.
Parameters
Parameter | Type | Description |
---|---|---|
embeds | EmbedResolvable [] | (embed1 : EmbedBuilder , embed2 : EmbedBuilder , embed3 : EmbedBuilder , embed4 : EmbedBuilder , embed5 : EmbedBuilder , embed6 : EmbedBuilder , embed7 : EmbedBuilder , embed8 : EmbedBuilder , embed9 : EmbedBuilder , embed10 : EmbedBuilder ) => EmbedResolvable [] | Either a callback which receives 10 parameters of new EmbedBuilder() , or an array of already constructed EmbedBuilder's |
Returns
this
Remark
When using this with a callback this will construct 10 EmbedBuilder's in the callback parameters, regardless of how many are actually used. If this a performance impact you do not want to cope with then it is recommended to use PaginatedMessage.addPageBuilder instead, which will let you add as many embeds as you want, albeit manually
Examples
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const paginatedMessage = new PaginatedMessage()
.addPageEmbeds((embed1, embed2, embed3) => { // You can add up to 10 embeds
embed1
.setColor('#FF0000')
.setDescription('example description 1');
embed2
.setColor('#00FF00')
.setDescription('example description 2');
embed3
.setColor('#0000FF')
.setDescription('example description 3');
return [embed1, embed2, embed3];
});
const { PaginatedMessage } = require('@sapphire/discord.js-utilities');
const embed1 = new EmbedBuilder()
.setColor('#FF0000')
.setDescription('example description 1');
const embed2 = new EmbedBuilder()
.setColor('#00FF00')
.setDescription('example description 2');
const embed3 = new EmbedBuilder()
.setColor('#0000FF')
.setDescription('example description 3');
const paginatedMessage = new PaginatedMessage()
.addPageEmbeds([embed1, embed2, embed3]); // You can add up to 10 embeds
Inherited from
PaginatedMessage
.addPageEmbeds
addPages()
addPages(
pages
:PaginatedMessagePage
[]):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1114
Add pages to the existing ones. The order given is the order they will be used.
Parameters
Parameter | Type | Description |
---|---|---|
pages | PaginatedMessagePage [] | The pages to add. |
Returns
this
Inherited from
applyFooter()
protected
applyFooter(message
:PaginatedMessageMessageOptionsUnion
,index
:number
):PaginatedMessageMessageOptionsUnion
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1672
Applies footer to the last embed of the page
Parameters
Parameter | Type | Description |
---|---|---|
message | PaginatedMessageMessageOptionsUnion | The message options |
index | number | The current index |
Returns
PaginatedMessageMessageOptionsUnion
The message options with the footer applied
Inherited from
clone()
clone():
PaginatedMessage
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1399
Clones the current handler into a new instance.
Returns
Inherited from
generatePages()
private
generatePages():void
Generates the pages for the paginated message. It clones the embed template, sets the fields, color, and adds the data to each page.
Returns
void
getPageOptions()
getPageOptions(
index
:number
):Promise
<undefined
|PaginatedMessageMessageOptionsUnion
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1412
Get the options of a page.
Parameters
Parameter | Type | Description |
---|---|---|
index | number | The index of the page. |
Returns
Promise
<undefined
| PaginatedMessageMessageOptionsUnion
>
Inherited from
PaginatedMessage
.getPageOptions
handleActionLoad()
protected
handleActionLoad(actions
:PaginatedMessageAction
[],messageOrInteraction
:Message
|AnyInteractableInteraction
,targetUser
:User
):Promise
<MessageActionRowComponentBuilder
[]>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1526
Handles the loading of actions.
Parameters
Parameter | Type | Description |
---|---|---|
actions | PaginatedMessageAction [] | The actions to be loaded. |
messageOrInteraction | Message | AnyInteractableInteraction | The message or interaction that triggered this PaginatedMessage. |
targetUser | User | The user the handler is for. |
Returns
Promise
<MessageActionRowComponentBuilder
[]>
Inherited from
PaginatedMessage
.handleActionLoad
handleCollect()
protected
handleCollect(targetUser
:User
,channel
:DMChannel
|PartialDMChannel
|PartialGroupDMChannel
|NewsChannel
|StageChannel
|TextChannel
|PublicThreadChannel
|PrivateThreadChannel
|VoiceChannel
,interaction
:PaginatedMessageInteractionUnion
):Promise
<void
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1586
Handles the collect
event from the collector.
Parameters
Parameter | Type | Description |
---|---|---|
targetUser | User | The user the handler is for. |
channel | DMChannel | PartialDMChannel | PartialGroupDMChannel | NewsChannel | StageChannel | TextChannel | PublicThreadChannel | PrivateThreadChannel | VoiceChannel | The channel the handler is running at. |
interaction | PaginatedMessageInteractionUnion | The button interaction that was received. |
Returns
Promise
<void
>
Inherited from
PaginatedMessage
.handleCollect
handleEnd()
protected
handleEnd(_
:Collection
<string
,PaginatedMessageInteractionUnion
>,reason
:PaginatedMessageStopReasons
):Promise
<void
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1639
Handles the end
event from the collector.
Parameters
Parameter | Type | Description |
---|---|---|
_ | Collection <string , PaginatedMessageInteractionUnion > | - |
reason | PaginatedMessageStopReasons | The reason for which the collector was ended. |
Returns
Promise
<void
>
Inherited from
handlePageLoad()
protected
handlePageLoad(page
:PaginatedMessagePage
,index
:number
):Promise
<PaginatedMessageMessageOptionsUnion
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1506
Handles the load of a page.
Parameters
Parameter | Type | Description |
---|---|---|
page | PaginatedMessagePage | The page to be loaded. |
index | number | The index of the current page. |
Returns
Promise
<PaginatedMessageMessageOptionsUnion
>
Inherited from
PaginatedMessage
.handlePageLoad
hasPage()
hasPage(
index
:number
):boolean
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:724
Checks whether or not the handler has a specific page.
Parameters
Parameter | Type | Description |
---|---|---|
index | number | The index to check. |
Returns
boolean
Inherited from
make()
make():
this
Build the pages of the given array.
You must call the [[PaginatedMessageEmbedFields.make]] and [[PaginatedMessageEmbedFields.run]] methods last, in that order, for the pagination to work.
Returns
this
Example
import { PaginatedMessageEmbedFields } from '@sapphire/discord.js-utilities';
new PaginatedMessageEmbedFields()
.setItems([
{ name: 'Sapphire Framework', value: 'discord.js Framework' },
{ name: 'Sapphire Framework 2', value: 'discord.js Framework 2' },
{ name: 'Sapphire Framework 3', value: 'discord.js Framework 3' }
])
.setItemsPerPage(3)
.make()
.run(message);
paginateArray()
private
paginateArray(items
:EmbedField
[],currentPage
:number
,perPageItems
:number
):EmbedField
[]
Paginates an array of EmbedFields.
Parameters
Parameter | Type | Description |
---|---|---|
items | EmbedField [] | The array of EmbedFields to paginate. |
currentPage | number | The current page number. |
perPageItems | number | The number of items per page. |
Returns
The paginated array of EmbedFields.
resolvePage()
resolvePage(
messageOrInteraction
:Message
|AnyInteractableInteraction
,target
:User
,index
:number
):Promise
<PaginatedMessageResolvedPage
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1356
Executed whenever an action is triggered and resolved.
Parameters
Parameter | Type | Description |
---|---|---|
messageOrInteraction | Message | AnyInteractableInteraction | The message or interaction that triggered this PaginatedMessage. |
target | User | The user who will be able to interact with the buttons of this PaginatedMessage. |
index | number | The index to resolve. |
Returns
Promise
<PaginatedMessageResolvedPage
>
Inherited from
resolvePagesOnRun()
resolvePagesOnRun(
messageOrInteraction
:Message
|AnyInteractableInteraction
,target
:User
):Promise
<void
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1344
Executed whenever PaginatedMessage.run is called.
Parameters
Parameter | Type |
---|---|
messageOrInteraction | Message | AnyInteractableInteraction |
target | User |
Returns
Promise
<void
>
Inherited from
PaginatedMessage
.resolvePagesOnRun
resolvePaginatedMessageInternationalizationContext()
protected
resolvePaginatedMessageInternationalizationContext(messageOrInteraction
:Message
|AnyInteractableInteraction
,targetUser
:User
):PaginatedMessageInternationalizationContext
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1708
Constructs a PaginatedMessageInternationalizationContext
Parameters
Parameter | Type | Description |
---|---|---|
messageOrInteraction | Message | AnyInteractableInteraction | The message or interaction for which the PaginatedMessageInternationalizationContext should be resolved. |
targetUser | User | The target user for whom this interaction is |
Returns
PaginatedMessageInternationalizationContext
A constructed PaginatedMessageInternationalizationContext
Inherited from
PaginatedMessage
.resolvePaginatedMessageInternationalizationContext
resolveTemplate()
private
resolveTemplate(template
:EmbedData
|EmbedResolvable
| (embed
:EmbedBuilder
) =>EmbedResolvable
):APIEmbed
Resolves the template for the PaginatedMessageEmbedFields.
Parameters
Parameter | Type | Description |
---|---|---|
template | EmbedData | EmbedResolvable | (embed : EmbedBuilder ) => EmbedResolvable | The template to resolve. It can be an EmbedResolvable, EmbedData, or a function that takes an EmbedBuilder and returns an EmbedResolvable. |
Returns
APIEmbed
The resolved APIEmbed object.
run()
run(
messageOrInteraction
:Message
|AnyInteractableInteraction
,target
?:User
):Promise
<PaginatedMessageEmbedFields
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1235
Executes the PaginatedMessage and sends the pages corresponding with PaginatedMessage.index. The handler will start collecting message component interactions.
Parameters
Parameter | Type | Description |
---|---|---|
messageOrInteraction | Message | AnyInteractableInteraction | The message or interaction that triggered this PaginatedMessage. Generally this will be the command message or an interaction (either a CommandInteraction, ContextMenuInteraction, or an interaction from PaginatedMessageInteractionUnion), but it can also be another message from your client, i.e. to indicate a loading state. |
target ? | User | The user who will be able to interact with the buttons of this PaginatedMessage. If messageOrInteraction is an instance of Message then this defaults to Message.author messageOrInteraction.author, and if it is an instance of CommandInteraction then it defaults to CommandInteraction.user messageOrInteraction.user. |
Returns
Promise
<PaginatedMessageEmbedFields
>
Remark
Please note that for PaginatedMessage to work in DMs to your client, you need to add the 'CHANNEL'
partial to your client.options.partials
.
Message based commands can always be used in DMs, whereas Chat Input interactions can only be used in DMs when they are registered globally.
Inherited from
setActions()
setActions(
actions
:PaginatedMessageAction
[],includeDefaultActions
:boolean
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:688
Clears all current actions and sets them. The order given is the order they will be used.
Parameters
Parameter | Type | Default value | Description |
---|---|---|---|
actions | PaginatedMessageAction [] | undefined | The actions to set. This can be either a Button, Link Button, or Select Menu. |
includeDefaultActions | boolean | false | Whether to merge in the PaginatedMessage.defaultActions when setting the actions. If you set this to true then you do not need to manually add ...PaginatedMessage.defaultActions as seen in the first example. The default value is false for backwards compatibility within the current major version. |
Returns
this
Remark
You can retrieve the default actions for the regular pagination
Examples
const display = new PaginatedMessage();
display.setActions([
...PaginatedMessage.defaultActions,
])
const display = new PaginatedMessage();
display.setActions([
{
style: 'PRIMARY',
label: 'My Button',
customId: 'custom_button',
type: ComponentType.Button,
run: (context) => console.log(context)
}
], true);
const display = new PaginatedMessage();
display.setActions([
{
style: 'LINK',
label: 'Sapphire Website',
emoji: '🔷',
url: 'https://sapphirejs.dev',
type: ComponentType.Button
}
], true);
const display = new PaginatedMessage();
display.setActions([
{
customId: 'custom_menu',
type: ComponentType.StringSelect,
run: (context) => console.log(context) // Do something here
}
], true);
Remark
You can add custom Message Buttons by providing style
, customId
, type
, run
and at least one of label
or emoji
.
Remark
You can add custom Message Link Buttons by providing style
, url
, type
, and at least one of label
or emoji
.
Remark
You can add custom Select Menus by providing customId
, type
, and run
.
Inherited from
setEmitPartialDMChannelWarning()
setEmitPartialDMChannelWarning(
emitPartialDMChannelWarning
:boolean
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:590
Sets the PaginatedMessage.emitPartialDMChannelWarning for this instance of PaginatedMessage. This will only apply to this one instance and no others.
Parameters
Parameter | Type | Description |
---|---|---|
emitPartialDMChannelWarning | boolean | The new emitPartialDMChannelWarning to set |
Returns
this
The current instance of PaginatedMessage
Inherited from
PaginatedMessage
.setEmitPartialDMChannelWarning
setIdle()
setIdle(
idle
:number
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:608
Sets the amount of time to idle before the paginator is closed.
Parameters
Parameter | Type | Description |
---|---|---|
idle | number | The number to set the idle to. |
Returns
this
Inherited from
setIndex()
setIndex(
index
:number
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:599
Sets the handler's current page/message index.
Parameters
Parameter | Type | Description |
---|---|---|
index | number | The number to set the index to. |
Returns
this
Inherited from
setItems()
setItems(
items
:EmbedField
[]):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:58
Set the items to paginate.
Parameters
Parameter | Type | Description |
---|---|---|
items | EmbedField [] | The pages to set |
Returns
this
setItemsPerPage()
setItemsPerPage(
itemsPerPage
:number
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageEmbedFields.ts:67
Sets the amount of items that should be shown per page.
Parameters
Parameter | Type | Description |
---|---|---|
itemsPerPage | number | The number of items |
Returns
this
setPageActions()
setPageActions(
actions
:PaginatedMessageAction
[],index
:number
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1150
Clear all actions for a page and set the new ones.
Parameters
Parameter | Type | Description |
---|---|---|
actions | PaginatedMessageAction [] | The actions to set. |
index | number | The index of the page to set the actions to. This is 0-based. |
Returns
this
Remark
Internally we check if the provided index exists. This means that calling this function before calling any of the methods below this will not work as the amount of pages will always be 0, thus the index will always be out of bounds. That said, make sure you first define your pages and then define your actions for those pages.
- PaginatedMessage.addAsyncPageEmbed
- PaginatedMessage.addPageBuilder
- PaginatedMessage.addPageContent
- PaginatedMessage.addPageEmbed
- PaginatedMessage.addPageEmbeds
- PaginatedMessage.addPages
- PaginatedMessage.setPages
Remark
Add a select menu to the first page, while preserving all default actions:
Example
const display = new PaginatedMessage();
display.setPageActions([
{
customId: 'custom_menu',
type: ComponentType.StringSelect,
run: (context) => console.log(context) // Do something here
}
], 0);
See
PaginatedMessage.setActions for more examples on how to structure the action.
Inherited from
PaginatedMessage
.setPageActions
setPages()
setPages(
pages
:PaginatedMessagePage
[]):PaginatedMessageEmbedFields
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:732
Clears all current pages and messages and sets them. The order given is the order they will be used.
Parameters
Parameter | Type | Description |
---|---|---|
pages | PaginatedMessagePage [] | The pages to set. |
Returns
Inherited from
setSelectMenuOptions()
setSelectMenuOptions(
newOptions
:PaginatedMessageSelectMenuOptionsFunction
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:542
Sets the PaginatedMessage.selectMenuOptions for this instance of PaginatedMessage. This will only apply to this one instance and no others.
Parameters
Parameter | Type | Description |
---|---|---|
newOptions | PaginatedMessageSelectMenuOptionsFunction | The new options generator to set |
Returns
this
The current instance of PaginatedMessage
Inherited from
PaginatedMessage
.setSelectMenuOptions
setSelectMenuPlaceholder()
setSelectMenuPlaceholder(
placeholder
:undefined
|string
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:557
Sets the PaginatedMessage.selectMenuPlaceholder for this instance of PaginatedMessage.
This applies only to the string select menu from the PaginatedMessage.defaultActions that offers "go to page" (we internally check the customId for this)
This will only apply to this one instance and no others.
Parameters
Parameter | Type | Description |
---|---|---|
placeholder | undefined | string | The new placeholder to set |
Returns
this
The current instance of PaginatedMessage
Inherited from
PaginatedMessage
.setSelectMenuPlaceholder
setShouldAddFooterToEmbeds()
setShouldAddFooterToEmbeds(
newValue
:boolean
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:618
Sets the value of shouldAddFooterToEmbeds property and returns the instance of the class.
Parameters
Parameter | Type | Description |
---|---|---|
newValue | boolean | The new value for shouldAddFooterToEmbeds. |
Returns
this
The instance of the class with the updated shouldAddFooterToEmbeds value.
Inherited from
PaginatedMessage
.setShouldAddFooterToEmbeds
setStopPaginatedMessageCustomIds()
setStopPaginatedMessageCustomIds(
stopPaginatedMessageCustomIds
:string
[]):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:579
Sets the PaginatedMessage.stopPaginatedMessageCustomIds for this instance of PaginatedMessage. This will only apply to this one instance and no others.
Parameters
Parameter | Type | Description |
---|---|---|
stopPaginatedMessageCustomIds | string [] | The new stopPaginatedMessageCustomIds to set |
Returns
this
The current instance of PaginatedMessage
Inherited from
PaginatedMessage
.setStopPaginatedMessageCustomIds
setTemplate()
setTemplate(
template
:EmbedResolvable
| (embed
:EmbedBuilder
) =>EmbedResolvable
):this
Sets the template to be used to display the embed fields as pages. This template can either be set from a template MessageEmbed instance or an object with embed options. All fields in the given template will be overwritten when calling PaginatedMessageEmbedFields.make.
Parameters
Parameter | Type | Description |
---|---|---|
template | EmbedResolvable | (embed : EmbedBuilder ) => EmbedResolvable | MessageEmbed |
Returns
this
Examples
import { PaginatedMessageEmbedFields } from '@sapphire/discord.js-utilities';
import { EmbedBuilder } from 'discord.js';
new PaginatedMessageEmbedFields()
.setTemplate(new EmbedBuilder().setColor('#006080').setTitle('Test pager embed'))
.setItems([{ name: 'My field', value: 'The field\'s value' }])
.make()
.run(message);
import { PaginatedMessageEmbedFields } from '@sapphire/discord.js-utilities';
new PaginatedMessageEmbedFields()
.setTemplate({ title: 'Test pager embed', color: '#006080' })
.setItems([{ name: 'My field', value: 'The field\'s value' }])
.make()
.run(message);
setUpCollector()
protected
setUpCollector(messageOrInteraction
:Message
|AnyInteractableInteraction
,targetUser
:User
):void
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1464
Sets up the message's collector.
Parameters
Parameter | Type | Description |
---|---|---|
messageOrInteraction | Message | AnyInteractableInteraction | The message or interaction that triggered this PaginatedMessage. |
targetUser | User | The user the handler is for. |
Returns
void
Inherited from
PaginatedMessage
.setUpCollector
setUpMessage()
protected
setUpMessage(messageOrInteraction
:Message
|AnyInteractableInteraction
):Promise
<void
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:1425
Sets up the message.
Parameters
Parameter | Type | Description |
---|---|---|
messageOrInteraction | Message | AnyInteractableInteraction | The message or interaction that triggered this PaginatedMessage. Generally this will be the command message or an interaction (either a CommandInteraction, ContextMenuInteraction, or an interaction from PaginatedMessageInteractionUnion), but it can also be another message from your client, i.e. to indicate a loading state. |
Returns
Promise
<void
>
Inherited from
setWrongUserInteractionReply()
setWrongUserInteractionReply(
wrongUserInteractionReply
:PaginatedMessageWrongUserInteractionReplyFunction
):this
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:568
Sets the PaginatedMessage.wrongUserInteractionReply for this instance of PaginatedMessage. This will only apply to this one instance and no others.
Parameters
Parameter | Type | Description |
---|---|---|
wrongUserInteractionReply | PaginatedMessageWrongUserInteractionReplyFunction | The new wrongUserInteractionReply to set |
Returns
this
The current instance of PaginatedMessage
Inherited from
PaginatedMessage
.setWrongUserInteractionReply
updateCurrentPage()
updateCurrentPage(
page
:PaginatedMessagePage
):Promise
<PaginatedMessageEmbedFields
>
Defined in: projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessage.ts:778
Update the current page.
Parameters
Parameter | Type | Description |
---|---|---|
page | PaginatedMessagePage | The content to update the page with. |
Returns
Promise
<PaginatedMessageEmbedFields
>
Remark
This method can only be used after PaginatedMessage.run has been used.