Skip to main content

Module: @sapphire/discord.js-utilities

Classes

Interfaces

Type Aliases

AnyInteractableInteraction

Ƭ AnyInteractableInteraction: Exclude<AnyInteraction, AutocompleteInteraction>

A union of ChatInputCommandInteraction, UserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, StringSelectMenuInteraction, ButtonInteraction, and ModalSubmitInteraction

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:97


AnyInteraction

Ƭ AnyInteraction: Interaction

A union of ChatInputCommandInteractionUserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, AutocompleteInteraction, StringSelectMenuInteraction, ButtonInteraction, and ModalSubmitInteraction

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:92


ChannelTypeString

Ƭ ChannelTypeString: ChannelTypes["type"] | "UNKNOWN"

The types of a channel, with the addition of 'UNKNOWN'

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:70


ChannelTypes

Ƭ ChannelTypes: CategoryChannel | DMChannel | PartialDMChannel | NewsChannel | StageChannel | TextChannel | ThreadChannel | VoiceChannel | GuildChannel | Channel

A union of all the various types of channels that Discord.js has

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:25


ChatInputOrContextMenuCommandInteraction

Ƭ ChatInputOrContextMenuCommandInteraction: ChatInputCommandInteraction | UserContextMenuCommandInteraction | MessageContextMenuCommandInteraction

A union of ChatInputCommandInteraction, UserContextMenuCommandInteraction and MessageContextMenuCommandInteraction. Similar to CommandInteraction class but as a type union.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:75


GuildBasedChannelTypes

Ƭ GuildBasedChannelTypes: NonThreadGuildBasedChannelTypes | ThreadChannel

A union of all the channel types that belong to a guild, including ThreadChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:55


GuildTextBasedChannelTypes

Ƭ GuildTextBasedChannelTypes: NonThreadGuildTextBasedChannelTypes | ThreadChannel

A union of guild based message channels, including ThreadChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:65


MessageBuilderFileResolvable

Ƭ MessageBuilderFileResolvable: NonNullable<MessageCreateOptions["files"]>[number]

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/builders/MessageBuilder.ts:3


MessageBuilderResolvable

Ƭ MessageBuilderResolvable: Omit<MessageCreateOptions, "embed" | "disableMentions" | "reply"> & { embeds?: MessageCreateOptions["embeds"] }

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/builders/MessageBuilder.ts:4


MessagePrompterChannelTypes

Ƭ MessagePrompterChannelTypes: Exclude<ChannelTypes, VoiceBasedChannelTypes | CategoryChannel>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/MessagePrompter/constants.ts:10


MessagePrompterMessage

Ƭ MessagePrompterMessage: ArgumentTypes<PartialTextBasedChannelFields["send"]>[0]

A type to extend multiple discord types and simplify usage in MessagePrompter

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/MessagePrompter/constants.ts:8


NonModalInteraction

Ƭ NonModalInteraction: ChatInputOrContextMenuCommandInteraction | AutocompleteInteraction | StringSelectMenuInteraction | ButtonInteraction

A union of ChatInputCommandInteractionUserContextMenuCommandInteraction, MessageContextMenuCommandInteraction, AutocompleteInteraction, StringSelectMenuInteraction and ButtonInteraction

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:83


NonThreadGuildBasedChannelTypes

Ƭ NonThreadGuildBasedChannelTypes: Extract<ChannelTypes, GuildChannel>

A union of all the channel types that belong to a guild, not including ThreadChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:50


NonThreadGuildTextBasedChannelTypes

Ƭ NonThreadGuildTextBasedChannelTypes: Extract<TextBasedChannelTypes, GuildChannel>

A union of guild based message channels, not including ThreadChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:60


PaginatedMessageAction

Ƭ PaginatedMessageAction: PaginatedMessageActionButton | PaginatedMessageActionLink | PaginatedMessageActionStringMenu | PaginatedMessageActionUserMenu | PaginatedMessageActionRoleMenu | PaginatedMessageActionMentionableMenu | PaginatedMessageActionChannelMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:41


PaginatedMessageActionButton

Ƭ PaginatedMessageActionButton: InteractionButtonComponentData & PaginatedMessageActionRun

To utilize buttons you can pass an object with the structure of PaginatedMessageActionButton to PaginatedMessage actions.

Example

const StopAction: PaginatedMessageActionButton = {
customId: 'CustomStopAction',
emoji: '⏹️',
run: ({ collector }) => {
collector.stop();
}
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:67


PaginatedMessageActionChannelMenu

Ƭ PaginatedMessageActionChannelMenu: PaginatedMessageActionRun & ChannelSelectMenuComponentData & { options?: never }

To utilize Channel Select Menus you can pass an object with the structure of PaginatedMessageActionChannelMenu to PaginatedMessage actions.

Example

const ChannelMenu: PaginatedMessageActionChannelMenu = {
customId: 'CustomChannelSelectMenu',
type: ComponentType.ChannelSelect,
channelTypes: [ChannelType.GuildText],
run: ({ interaction }) => {
if (interaction.isChannelSelectMenu()) {
console.log(interaction.values[0])
}
}
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:173


Ƭ PaginatedMessageActionLink: LinkButtonComponentData

To utilize links you can pass an object with the structure of PaginatedMessageActionLink to PaginatedMessage actions.

Example

 You can also give the object directly.

const LinkSapphireJs: PaginatedMessageActionLink = {
url: 'https://sapphirejs.dev',
label: 'Sapphire Website',
emoji: '🔗'
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:82


PaginatedMessageActionMentionableMenu

Ƭ PaginatedMessageActionMentionableMenu: PaginatedMessageActionRun & MentionableSelectMenuComponentData & { options?: never }

To utilize Mentionable Select Menus you can pass an object with the structure of PaginatedMessageActionMentionableMenu to PaginatedMessage actions.

Example

const MentionableMenu: PaginatedMessageActionMentionableMenu = {
customId: 'CustomMentionableSelectMenu',
type: ComponentType.MentionableSelect,
run: ({ interaction }) => {
if (interaction.isMentionableSelectMenu()) {
console.log(interaction.values[0])
}
}
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:152


PaginatedMessageActionRoleMenu

Ƭ PaginatedMessageActionRoleMenu: PaginatedMessageActionRun & RoleSelectMenuComponentData & { options?: never }

To utilize Role Select Menus you can pass an object with the structure of PaginatedMessageActionRoleMenu to PaginatedMessage actions.

Example

const RoleMenu: PaginatedMessageActionRoleMenu = {
customId: 'CustomRoleSelectMenu',
type: ComponentType.RoleSelect,
run: ({ interaction }) => {
if (interaction.isRoleSelectMenu()) {
console.log(interaction.values[0])
}
}
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:132


PaginatedMessageActionStringMenu

Ƭ PaginatedMessageActionStringMenu: PaginatedMessageActionRun & StringSelectMenuComponentData

To utilize String Select Menus you can pass an object with the structure of PaginatedMessageActionStringMenu to PaginatedMessage actions.

Example

const StringMenu: PaginatedMessageActionStringMenu = {
customId: 'CustomStringSelectMenu',
type: ComponentType.StringSelect,
run: ({ handler, interaction }) => interaction.isStringSelectMenu() && (handler.index = parseInt(interaction.values[0], 10))
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:95


PaginatedMessageActionUserMenu

Ƭ PaginatedMessageActionUserMenu: PaginatedMessageActionRun & UserSelectMenuComponentData & { options?: never }

To utilize User Select Menus you can pass an object with the structure of PaginatedMessageActionUserMenu to PaginatedMessage actions.

Example

const UserMenu: PaginatedMessageActionUserMenu = {
customId: 'CustomUserSelectMenu',
type: ComponentType.UserSelect,
run: ({ interaction }) => {
if (interaction.isChannelSelectMenu()) {
console.log(interaction.values[0])
}
}
}

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:112


PaginatedMessageComponentUnion

Ƭ PaginatedMessageComponentUnion: JSONEncodable<APIActionRowComponent<APIMessageActionRowComponent>> | ActionRowData<ActionRowComponentOptions | MessageActionRowComponentBuilder> | APIActionRowComponent<APIMessageActionRowComponent>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:268


PaginatedMessageEmbedResolvable

Ƭ PaginatedMessageEmbedResolvable: BaseMessageOptions["embeds"]

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:260


PaginatedMessageInteractionUnion

Ƭ PaginatedMessageInteractionUnion: Exclude<CollectedInteraction, ModalSubmitInteraction>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:266


PaginatedMessageMessageOptionsUnion

Ƭ PaginatedMessageMessageOptionsUnion: Omit<PaginatedMessageResolvedPage, "components"> & { actions?: PaginatedMessageAction[] }

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:262


PaginatedMessagePage

Ƭ PaginatedMessagePage: (index: number, pages: PaginatedMessagePage[], handler: PaginatedMessage) => Awaitable<PaginatedMessageMessageOptionsUnion> | PaginatedMessageMessageOptionsUnion

The pages that are used for pages

Pages can be either a Message, or an Awaitable function that returns a Message.

Furthermore, MessageOptions can be used to construct the pages without state. This library also provides MessageBuilder, which can be used as a chainable alternative to raw objects, similar to how MessageEmbed works.

Ideally, however, you should use the utility functions addPageBuilder, addPageContent, and addPageEmbed as opposed to manually constructing MessagePages. This is because a PaginatedMessage does a lot of post-processing on the provided pages and we can only guarantee this will work properly when using the utility methods.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:237


PaginatedMessageResolvedPage

Ƭ PaginatedMessageResolvedPage: Omit<BaseMessageOptions, "flags"> | WebhookMessageEditOptions

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:241


PaginatedMessageSelectMenuOptionsFunction

Ƭ PaginatedMessageSelectMenuOptionsFunction: (pageIndex: number, internationalizationContext: PaginatedMessageInternationalizationContext) => Awaitable<Omit<SelectMenuComponentOptionData, "value">>

Type declaration

▸ (pageIndex, internationalizationContext): Awaitable<Omit<SelectMenuComponentOptionData, "value">>

The type of the custom function that can be set for the selectMenuOptions

Parameters
NameType
pageIndexnumber
internationalizationContextPaginatedMessageInternationalizationContext
Returns

Awaitable<Omit<SelectMenuComponentOptionData, "value">>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:246


PaginatedMessageStopReasons

Ƭ PaginatedMessageStopReasons: "time" | "idle" | "user" | "messageDelete" | "channelDelete" | "threadDelete" | "guildDelete" | "limit" | "componentLimit" | "userLimit"

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:302


PaginatedMessageWrongUserInteractionReplyFunction

Ƭ PaginatedMessageWrongUserInteractionReplyFunction: (targetUser: User, interactionUser: User, internationalizationContext: PaginatedMessageInternationalizationContext) => Awaitable<Parameters<MessageComponentInteraction["reply"]>[0]>

Type declaration

▸ (targetUser, interactionUser, internationalizationContext): Awaitable<Parameters<MessageComponentInteraction["reply"]>[0]>

The type of the custom function that can be set for the wrongUserInteractionReply

Parameters
NameType
targetUserUser
interactionUserUser
internationalizationContextPaginatedMessageInternationalizationContext
Returns

Awaitable<Parameters<MessageComponentInteraction["reply"]>[0]>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/PaginatedMessageTypes.ts:254


TextBasedChannelTypes

Ƭ TextBasedChannelTypes: Message["channel"]

A union of all the channel types that a message can come from

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:40


VoiceBasedChannelTypes

Ƭ VoiceBasedChannelTypes: VoiceChannel | StageChannel

A union of all the voice-based channel types that Discord.js has

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utility-types.ts:45

Variables

ApplicationCommandLimits

Const ApplicationCommandLimits: Object

Namespace containing limits related to Discord application commands (slash commands).

Type declaration

NameTypeDescription
MaximumDescriptionCharacters100Maximum characters allowed in an application command description.
MaximumNameCharacters32Maximum characters allowed in an application command name.
MaximumOptionsLength25Maximum options allowed in an application command.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:195


ApplicationCommandOptionLimits

Const ApplicationCommandOptionLimits: Object

Namespace containing limits related to Choices of Discord Application Commands.

Type declaration

NameTypeDescription
MaximumChoicesLength25Maximum length of choices allowed in the option of an application command.
MaximumDescriptionCharacters100Maximum characters allowed in the description of an option of an application command.
MaximumNameCharacters32Maximum characters allowed in the name of an option of an application command.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:212


AutoCompleteLimits

Const AutoCompleteLimits: Object

Namespace container limits related to Discord autocomplete interactions.

Type declaration

NameTypeDescription
MaximumAmountOfOptions25Maximum options allowed in a single autocomplete response.
MaximumLengthOfNameOfOption100Maximum characters allowed in a select menu option's name.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:342


ButtonLimits

Const ButtonLimits: Object

Namespace containing limits related to Message Buttons.

Type declaration

NameTypeDescription
MaximumCustomIdCharacters100Maximum characters allowed in a button custom ID.
MaximumLabelCharacters80Maximum characters allowed in a button label.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:229


ChannelLimits

Const ChannelLimits: Object

Namespace containing limits related to Discord channels.

Type declaration

NameTypeDescription
MaximumDescriptionLength1024Maximum characters allowed in a channel description.
MaximumNameLength100Maximum characters allowed in a channel name.
MaximumViewersPerScreenShare50Maximum viewers allowed per screen share.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:89


ChannelMentionRegex

Const ChannelMentionRegex: RegExp

Regex that can capture the ID in Discord Channel mentions

Raw

/^<#(?<id>\d{17,20})>$/

Remark

Capture group 1 is the ID of the channel. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:396


ChannelMessageRegex

Const ChannelMessageRegex: RegExp

Regex that can capture the channel and message IDs in a channelId-messageId pattern This pattern can be found when you hold Shift and hover over a message, and click the "ID" button

Raw

/^(?<channelId>\d{17,20})-(?<messageId>\d{17,20})$/

Remark

Capture group 1 is the ID of the channel, named channelId.

Remark

Capture group 2 is the ID of the message, named messageId.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:404


DiscordHostnameRegex

Const DiscordHostnameRegex: RegExp

Regex that matches links on the known Discord host names

Raw

/(?<subdomain>\w+)\.?(?<hostname>dis(?:cord)?(?:app|merch|status)?)\.(?<tld>com|g(?:d|g|ift)|(?:de(?:sign|v))|media|new|store|net)/i

Remark

The regex is case insensitive

Remark

Capture group 1 is the subdomain for this URL. It is named subdomain.

Remark

Capture group 2 is the hostname for this URL, primarily discord but can also be discordmerch, discordstatus, dis, and discordapp. It is named hostname.

Remark

Capture group 3 is the Top-Level Domain without .. It is named tld.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:413


DiscordInviteLinkRegex

Const DiscordInviteLinkRegex: RegExp

Regex that can can capture the code of Discord invite links

Raw

/(?:^|\b)discord(?:(?:app)?\.com/invite|\.gg(?:/invite)?)/(?<code>[\w-]{2,255})(?:$|\b)/gi

Remark

Capture group 1 is the invite URL's unique code. It is named code.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:419


EmbedLimits

Const EmbedLimits: Object

Namespace containing limits related to Discord embeds.

Type declaration

NameTypeDescription
MaximumAuthorNameLength256Maximum characters allowed in the author field of an embed.
MaximumDescriptionLength4096Maximum characters allowed in an embed description.
MaximumFieldNameLength256Maximum characters allowed in the name of a field in an embed.
MaximumFieldValueLength1024Maximum characters allowed in the value of a field in an embed.
MaximumFields25Maximum fields allowed in an embed.
MaximumFooterLength2048Maximum characters allowed in a footer of an embed.
MaximumTitleLength256Maximum characters allowed in the title of an embed.
MaximumTotalCharacters6000Maximum characters allowed in an embed, in total.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:106


EmojiLimits

Const EmojiLimits: Object

Namespace containing limits related to Discord emojis.

Type declaration

NameTypeDescription
MaximumEmojiNameLength32Maximum characters allowed in a custom guild emoji.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:143


EmojiRegex

Const EmojiRegex: RegExp

Regex that can capture the ID of any animated or non-animated custom Discord emoji

Raw

/^(?:<(?<animated>a)?:(?<name>\w{2,32}):)?(?<id>\d{17,21})>?$/

Remark

Capture group 1 can be used to determine whether the emoji is animated or not. It is named animated.

Remark

Capture group 2 is the name of the emoji as it is typed in a message. It is named name.

Remark

Capture group 3 is the ID of the emoji. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:427


FormattedCustomEmoji

Const FormattedCustomEmoji: RegExp

Regex that matches any animated or non-animated custom Discord emoji. Unlike EmojiRegex It can be a substring of a larger string.

Raw

/<a?:\w{2,32}:\d{17,20}>/

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:433


FormattedCustomEmojiWithGroups

Const FormattedCustomEmojiWithGroups: RegExp

Regex that can capture any animated or non-animated custom Discord emoji. Similar to FormattedCustomEmoji and unlike EmojiRegex can also be a substring of a larger string.

Raw

/(?<animated>a?):(?<name>[^:]+):(?<id>\d{17,20})/

Remark

Capture group 1 can be used to determine whether the emoji is animated or not. It is named animated.

Remark

Capture group 2 is the name of the emoji as it is typed in a message. It is named name.

Remark

Capture group 3 is the ID of the emoji. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:442


GuildLimits

Const GuildLimits: Object

Namespace containing limits related to Discord guilds.

Type declaration

NameTypeDescription
MaximumChannels500Maximum channels allowed per guild, including category channels.
MaximumRoles250Maximum roles allowed in a guild.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:152


GuildMemberLimits

Const GuildMemberLimits: Object

Namespace containing limits related to Discord guild members.

Type declaration

NameTypeDescription
MaximumDisplayNameLength32Maximum characters allowed in the display name of a guild member.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:165


HttpUrlRegex

Const HttpUrlRegex: RegExp

Regex that matches any URL starting with http or https

Raw

/^https?:///

Remark

for WebSocket URLs see WebsocketGenericUrlRegex

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:448


InteractionLimits

Const InteractionLimits: Object

Namespace containing limits related to Discord interactions.

Type declaration

NameTypeDescription
MaximumButtonsPerActionRow5Maximum buttons allowed in a single action row.
MaximumOptionsInSelectMenus25Maximum options allowed in a single select menu.
MaximumSelectMenusPerActionRow1Maximum select menus allowed in a single action row.
MaximumTextInputsPerActionRow1Maximum text inputs allowed in a single action row.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:174


MessageLimits

Const MessageLimits: Object

Namespace containing limits related to Discord messages.

Type declaration

NameTypeDescription
MaximumActionRows5Maximum action rows allowed in a single message.
MaximumEmbeds10Maximum embeds allowed in a single message.
MaximumLength2000Maximum characters allowed in a single message for a user.
MaximumNitroLength4000Maximum characters allowed in a single message for a nitro user.
MaximumNitroUploadSize5000000000Maximum upload size for a nitro user, in any guild or in DMs. Size is in bytes, and correspond to 500MB.
MaximumReactions20Maximum numbers of reactions allowed for a message.
MaximumUploadSize8000000Maximum upload size for a free user in a guild of tier 1 or below, or in DMs. Size is in bytes, and correspond to 8MB.
MaximumUploadSizeInGuildreadonly [8000000, 8000000, 50000000, 100000000]Maximum upload size for a free user for all different boost levels available in a guild. Sizes are in bytes, and correspond to 8MB, 8MB, 50MB, and 100MB.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:271


MessageLinkRegex

Const MessageLinkRegex: RegExp

Regex that can capture the Guild, Channel, and Message ID based on a shareable Discord message link.

Raw

/^(?:https://)?(?:ptb\.|canary\.)?discord(?:app)?\.com/channels/(?<guildId>(?:\d{17,20}|@me))/(?<channelId>\d{17,20})/(?<messageId>\d{17,20})$/

Remark

Capture group 1 is the ID of the guild the message was sent in. It is named guildId.

Remark

Capture group 2 is the ID of the channel in that guild the message was sent in. It is named channelId.

Remark

Capture group 3 is the ID of the message itself. It is named messageId.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:456


ModalLimits

Const ModalLimits: Object

Namespace containing limits related to Discord Modals.

Type declaration

NameTypeDescription
MaximumComponents5Maximum components allowed in a modal.
MaximumCustomIdCharacters100Maximum characters allowed in a modal custom ID.
MaximumTitleCharacters45Maximum characters allowed in a modal title.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:355


ModerationLimits

Const ModerationLimits: Object

Namespace containing limits related to built-in moderation features.

Type declaration

NameTypeDescription
MaximumTimeoutDuration2419200Maximum duration of a guild timeout, in seconds (corresponds to 28 days).

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:311


ParsedCustomEmoji

Const ParsedCustomEmoji: RegExp

Regex that matches any animated or non-animated custom Discord emoji *without the wrapping <...> symbols. This means that a string that matches this regex can directly be send inside a Discord message. Other than this difference it is similar to FormattedCustomEmoji.

Raw

/a?:\w{2,32}:\d{17,20}/

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:463


ParsedCustomEmojiWithGroups

Const ParsedCustomEmojiWithGroups: RegExp

Regex that matches any animated or non-animated custom Discord emoji *without the wrapping <...> symbols. This means that a string that matches this regex can directly be send inside a Discord message. Other than this difference it is similar to FormattedCustomEmojiWithGroups.

Raw

/(?<animated>a?):(?<name>[^:]+):(?<id>\d{17,20})/

Remark

Capture group 1 can be used to determine whether the emoji is animated or not. It is named animated.

Remark

Capture group 2 is the name of the emoji as it is typed in a message. It is named name.

Remark

Capture group 3 is the ID of the emoji. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:473


RoleLimits

Const RoleLimits: Object

Namespace containing limits related to Discord roles.

Type declaration

NameTypeDescription
MaximumNameLength100Maximum characters allowed in a role name.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:320


RoleMentionRegex

Const RoleMentionRegex: RegExp

Regex that can capture the ID in Discord Role mentions

Raw

/^<@&(?<id>\d{17,20})>$/

Remark

Capture group 1 is the ID of the role. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:479


SelectMenuLimits

Const SelectMenuLimits: Object

Namespace containing limits related to Select Menus.

Type declaration

NameTypeDescription
MaximumCustomIdCharacters100Maximum characters allowed in a select menu custom ID.
MaximumLengthOfNameOfOption100Maximum characters allowed in a select menu option's name.
MaximumMaxValuesSize25Maximum "maximum" values allowed in a select menu.
MaximumMinValuesSize25Maximum "minimum" values allowed in a select menu.
MaximumOptionsLength25Maximum amount of options allowed in a select menu.
MaximumPlaceholderCharacters150Maximum characters allowed in a select menu placeholder.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:242


SnowflakeRegex

Const SnowflakeRegex: RegExp

Regex that can capture any Discord Snowflake ID

Raw

/^(?<id>\d{17,20})$/

Remark

Capture group 1 is the Snowflake. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:485


TextInputLimits

Const TextInputLimits: Object

Namespace containing limits related to Discord Modal Text Input component.

Type declaration

NameTypeDescription
MaximumCustomIdCharacters100Maximum characters allowed in a text input custom ID.
MaximumLabelCharacters45Maximum characters allowed in a text input label.
MaximumPlaceholderCharacters100Maximum characters allowed in a text input placeholder.
MaximumValueCharacters4000Maximum characters allowed in a text input value.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:372


TokenRegex

Const TokenRegex: RegExp

Regex that can capture a Discord Token

Raw

/(?<mfaToken>mfa\.[a-z0-9_-]{20,})|(?<basicToken>[a-z0-9_-]{23,28}\.[a-z0-9_-]{6,7}\.[a-z0-9_-]{27})/i

Remark

Capture group 1 can be used to retrieve a token for a User that has Multi-Factor Authentication enabled. It is named mfaToken.

Remark

Capture group 2 can be used to retrieve a token for a User that doesn't have Multi-Factor Authentication enabled, or a Bot application. It is named basicToken.

Remark

For a valid token, either Capture group 1 or Capture group 2 will always be undefined, whereas the other group will then be defined and contain the matched token. You can use the name of the capture group to determine if the validated token was configured for a user with Multi-Factor Authentication, for a user without Multi-Factor Authentication, or for a bot application. If both capture groups are undefined, then the token is invalid.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:496


TwemojiRegex

Const TwemojiRegex: RegExp

Regex that can capture a Twemoji (Twitter Emoji)

Raw

See official source code

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:523


UserLimits

Const UserLimits: Object

Namespace containing limits related to Discord users and Direct Messages.

Type declaration

NameTypeDescription
MaximumBiographyLength190Maximum characters allowed in a user's biography (the "About Me" section).
MaximumUsersPerDMGroup10Maximum numbers of users in a DM group.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:329


UserOrMemberMentionRegex

Const UserOrMemberMentionRegex: RegExp

Regex that can capture the ID of a user in Discord user mentions

Raw

/^<@!?(?<id>\d{17,20})>$/

Remark

Capture group 1 is the ID of the user. It is named id.

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:502


WebSocketUrlRegex

Const WebSocketUrlRegex: RegExp

Regex that matches any WebSocket URL starting with ws or wss

Raw

/^wss?:///

Remark

for regular HTTP URLs see HttpUrlRegex

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:508


WebhookRegex

Const WebhookRegex: RegExp

Regex that captures the Webhook ID and token from a Discord Webhook URL.

Raw

/(?<url>^https://(?:(?:canary|ptb).)?discord(?:app)?.com/api(?:/v\d+)?/webhooks/(?<id>\d+)/(?<token>[\w-]+)/?$)/

Remark

Capture group 1 is the full URL of the Discord Webhook. It is named url.

Remark

Capture group 2 is the ID of the Discord Webhook. It is named id.

Remark

Capture group 3 is the token of the Discord Webhook. It is named token.

Remark

for regular HTTP URLs see HttpUrlRegex

Defined in

node_modules/@sapphire/discord-utilities/dist/index.d.ts:517

Functions

actionIsButtonOrMenu

actionIsButtonOrMenu(action): action is PaginatedMessageActionButton | PaginatedMessageActionStringMenu | PaginatedMessageActionUserMenu | PaginatedMessageActionRoleMenu | PaginatedMessageActionMentionableMenu | PaginatedMessageActionChannelMenu

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionButton | PaginatedMessageActionStringMenu | PaginatedMessageActionUserMenu | PaginatedMessageActionRoleMenu | PaginatedMessageActionMentionableMenu | PaginatedMessageActionChannelMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:32


canJoinVoiceChannel

canJoinVoiceChannel(channel): boolean

Determines whether the client can join the given voice based channel.

Parameters

NameTypeDescription
channelVoiceBasedChannel | NullishThe channel to test the permissions from.

Returns

boolean

Whether or not the client can join the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:109


canReact

canReact(channel): boolean

Determines whether or not we can send react to messages in a given channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to test the permissions from.

Returns

boolean

Whether or not we can react to messages in the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:76


canReadMessages

canReadMessages(channel): boolean

Determines whether or not we can read messages in a given channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to test the permissions from.

Returns

boolean

Whether or not we can read messages in the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:13


canRemoveAllReactions

canRemoveAllReactions(channel): boolean

Determines whether or not we can remove reactions from messages in a given channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to test the permissions from.

Returns

boolean

Whether or not we can remove reactions from messages in the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:95


canSendAttachments

canSendAttachments(channel): boolean

Determines whether or not we can send attachments in a given channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to test the permissions from.

Returns

boolean

Whether or not we can send attachments in the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:57


canSendEmbeds

canSendEmbeds(channel): boolean

Determines whether or not we can send embeds in a given channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to test the permissions from.

Returns

boolean

Whether or not we can send embeds in the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:42


canSendMessages

canSendMessages(channel): boolean

Determines whether or not we can send messages in a given channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to test the permissions from.

Returns

boolean

Whether or not we can send messages in the specified channel.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/utilities.ts:27


createPartitionedMessageRow

createPartitionedMessageRow(components): PaginatedMessageComponentUnion[]

Parameters

NameType
componentsMessageActionRowComponentBuilder[]

Returns

PaginatedMessageComponentUnion[]

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:99


isActionButton

isActionButton(action): action is PaginatedMessageActionButton

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionButton

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:71


isActionChannelMenu

isActionChannelMenu(action): action is PaginatedMessageActionChannelMenu

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionChannelMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:95


isActionLink(action): action is LinkButtonComponentData

Parameters

NameType
actionPaginatedMessageAction

Returns

action is LinkButtonComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:75


isActionMentionableMenu

isActionMentionableMenu(action): action is PaginatedMessageActionMentionableMenu

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionMentionableMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:91


isActionRoleMenu

isActionRoleMenu(action): action is PaginatedMessageActionRoleMenu

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionRoleMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:87


isActionStringMenu

isActionStringMenu(action): action is PaginatedMessageActionStringMenu

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionStringMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:79


isActionUserMenu

isActionUserMenu(action): action is PaginatedMessageActionUserMenu

Parameters

NameType
actionPaginatedMessageAction

Returns

action is PaginatedMessageActionUserMenu

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:83


isAnyInteractableInteraction

isAnyInteractableInteraction(messageOrInteraction): messageOrInteraction is AnyInteractableInteraction

Parameters

NameType
messageOrInteractionAPIMessage | BaseInteraction<CacheType> | Message<boolean>

Returns

messageOrInteraction is AnyInteractableInteraction

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:203


isAnyInteraction

isAnyInteraction(messageOrInteraction): messageOrInteraction is BaseInteraction<CacheType>

Checks whether the input messageOrInteraction is one of Message or one of Interaction, CommandInteraction, ContextMenuInteraction, or SelectMenuInteraction

Parameters

NameTypeDescription
messageOrInteractionAPIMessage | BaseInteraction<CacheType> | Message<boolean>The message or interaction that should be checked.

Returns

messageOrInteraction is BaseInteraction<CacheType>

true if the messageOrInteraction is NOT an instanceof Message, false if it is.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:199


isButtonComponentBuilder

isButtonComponentBuilder(component): component is ButtonBuilder

Parameters

NameType
componentMessageActionRowComponentBuilder

Returns

component is ButtonBuilder

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:67


isCategoryChannel

isCategoryChannel(channel): channel is CategoryChannel

Checks whether a given channel is a CategoryChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check

Returns

channel is CategoryChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:36


isDMChannel

isDMChannel(channel): channel is DMChannel | PartialDMChannel

Checks whether a given channel is a DMChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check

Returns

channel is DMChannel | PartialDMChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:44


isGroupChannel

isGroupChannel(channel): channel is PartialGroupDMChannel

Checks whether a given channel is a PartialGroupDMChannel

Parameters

NameTypeDescription
channelChannel | NullishThe channel to check

Returns

channel is PartialGroupDMChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:52


isGuildBasedChannel

isGuildBasedChannel(channel): channel is GuildTextBasedChannelTypes

Checks if a channel comes from a guild.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check

Returns

channel is GuildTextBasedChannelTypes

Whether or not the channel is guild-based.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:61


isGuildBasedChannelByGuildKey

isGuildBasedChannelByGuildKey(channel): channel is GuildTextBasedChannelTypes

Checks whether or not a channel comes from a guild.

Remark

As opposed to isGuildBasedChannel this checks if there is guild property on the channel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is GuildTextBasedChannelTypes

Whether or not the channel is guild-based.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:71


isGuildMember

isGuildMember(member): member is GuildMember

Checks whether a given member is an instance of GuildMember, and not APIInteractionGuildMember, APIGuildMember, or Nullish

Parameters

NameTypeDescription
memberAPIGuildMember | APIInteractionGuildMember | APIInteractionDataResolvedGuildMember | GuildMember | NullishThe member to check

Returns

member is GuildMember

true if the member is an instance of GuildMember, false otherwise.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:218


isMessageButtonInteractionData

isMessageButtonInteractionData(interaction): interaction is ButtonComponentData

Parameters

NameType
interactionActionRowComponentOptions

Returns

interaction is ButtonComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:43


isMessageChannelSelectInteractionData

isMessageChannelSelectInteractionData(interaction): interaction is ChannelSelectMenuComponentData

Parameters

NameType
interactionActionRowComponentOptions

Returns

interaction is ChannelSelectMenuComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:63


isMessageInstance

isMessageInstance(message): message is Message<boolean>

Checks whether a given message is an instance of Message, and not APIMessage

Parameters

NameTypeDescription
messageAPIMessage | Message<boolean>The message to check

Returns

message is Message<boolean>

true if the message is an instance of Message, false otherwise.

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:190


isMessageMentionableSelectInteractionData

isMessageMentionableSelectInteractionData(interaction): interaction is MentionableSelectMenuComponentData

Parameters

NameType
interactionActionRowComponentOptions

Returns

interaction is MentionableSelectMenuComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:59


isMessageRoleSelectInteractionData

isMessageRoleSelectInteractionData(interaction): interaction is RoleSelectMenuComponentData

Parameters

NameType
interactionActionRowComponentOptions

Returns

interaction is RoleSelectMenuComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:55


isMessageStringSelectInteractionData

isMessageStringSelectInteractionData(interaction): interaction is StringSelectMenuComponentData

Parameters

NameType
interactionActionRowComponentOptions

Returns

interaction is StringSelectMenuComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:47


isMessageUserSelectInteractionData

isMessageUserSelectInteractionData(interaction): interaction is UserSelectMenuComponentData

Parameters

NameType
interactionActionRowComponentOptions

Returns

interaction is UserSelectMenuComponentData

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:51


isNewsChannel

isNewsChannel(channel): channel is NewsChannel

Checks whether a given channel is a NewsChannel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is NewsChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:79


isNewsThreadChannel

isNewsThreadChannel(channel): channel is ThreadChannel<boolean>

Checks whether a given channel is a News ThreadChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is ThreadChannel<boolean>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:119


isNsfwChannel

isNsfwChannel(channel): boolean

Checks whether a given channel allows NSFW content or not

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

boolean

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:163


isPrivateThreadChannel

isPrivateThreadChannel(channel): channel is ThreadChannel<boolean>

Checks whether a given channel is a Private ThreadChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is ThreadChannel<boolean>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:135


isPublicThreadChannel

isPublicThreadChannel(channel): channel is ThreadChannel<boolean>

Checks whether a given channel is a Public ThreadChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is ThreadChannel<boolean>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:127


isStageChannel

isStageChannel(channel): channel is StageChannel

Checks whether a given channel is a StageChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check

Returns

channel is StageChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:103


isTextBasedChannel

isTextBasedChannel(channel): channel is DMChannel | PartialDMChannel | NewsChannel | StageChannel | TextChannel | PrivateThreadChannel | PublicThreadChannel<boolean> | VoiceChannel

Checks whether a given channel is a TextBasedChannelTypes. This means it has a send method.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is DMChannel | PartialDMChannel | NewsChannel | StageChannel | TextChannel | PrivateThreadChannel | PublicThreadChannel<boolean> | VoiceChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:143


isTextChannel

isTextChannel(channel): channel is TextChannel

Checks whether a given channel is a TextChannel.

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is TextChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:87


isThreadChannel

isThreadChannel(channel): channel is ThreadChannel<boolean>

Checks whether a given channel is a ThreadChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check.

Returns

channel is ThreadChannel<boolean>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:111


isVoiceBasedChannel

isVoiceBasedChannel(channel): channel is VoiceBasedChannel

Checks whether a given channel is a VoiceBasedChannel.

Parameters

NameType
channelChannel | Nullish

Returns

channel is VoiceBasedChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:153


isVoiceChannel

isVoiceChannel(channel): channel is VoiceChannel

Checks whether a given channel is a VoiceChannel

Parameters

NameTypeDescription
channelNullish | ChannelTypesThe channel to check

Returns

channel is VoiceChannel

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/type-guards.ts:95


safelyReplyToInteraction

safelyReplyToInteraction<T>(parameters): Promise<void>

Safely replies to a message or interaction. This is primarily to save duplicated code in the main PaginatedMessage class

Type parameters

NameType
Textends "edit" | "reply"

Parameters

NameTypeDescription
parametersSafeReplyToInteractionParameters<T>The parameters to create a safe reply to interaction parameters

Returns

Promise<void>

Defined in

projects/utilities/packages/discord.js-utilities/src/lib/PaginatedMessages/utils.ts:127