Skip to main content

Class: InteractionOptionResolver

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:28

Utility class for resolving command interaction options while working with the raw API. Based on https://github.com/discordjs/discord.js/blob/main/packages/discord.js/src/structures/CommandInteractionOptionResolver.js

Constructors​

Constructor​

new InteractionOptionResolver(interaction: APIApplicationCommandInteraction | APIApplicationCommandAutocompleteInteraction | APIModalSubmitInteraction): InteractionOptionResolver

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:61

Parameters​

ParameterType
interactionAPIApplicationCommandInteraction | APIApplicationCommandAutocompleteInteraction | APIModalSubmitInteraction

Returns​

InteractionOptionResolver

Properties​

data​

private readonly data: null | APIApplicationCommandInteractionDataOption[] = null

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:34

The interaction options array


group​

private readonly group: null | string = null

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:54

The name of the subcommand group


hoistedOptions​

private readonly hoistedOptions: null | APIApplicationCommandInteractionDataOption[] = null

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:49

Bottom-level options for the interaction If there is a subcommand (or subcommand and group), this represents the options for the subcommand.


interaction​

private readonly interaction: APIApplicationCommandInteraction | APIApplicationCommandAutocompleteInteraction | APIModalSubmitInteraction

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:29


resolved​

private readonly resolved: null | APIInteractionDataResolved | APIUserInteractionDataResolved | APIMessageApplicationCommandInteractionDataResolved = null

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:39

The interaction resolved data


subcommand​

private readonly subcommand: null | string = null

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:59

The name of the subcommand

Methods​

get()​

get<Required>(name: string, required?: Required): If<Required, APIApplicationCommandInteractionDataOption>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:88

Gets an option by its name

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIApplicationCommandInteractionDataOption>


getAttachment()​

getAttachment<Required>(name: string, required?: Required): If<Required, APIAttachment>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:227

Gets an attachment option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIAttachment>


getBoolean()​

getBoolean<Required>(name: string, required?: Required): If<Required, boolean>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:134

Gets a boolean option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, boolean>


getChannel()​

getChannel<Required>(name: string, required?: Required): If<Required, APIInteractionDataResolvedChannel>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:145

Gets a channel option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIInteractionDataResolvedChannel>


getFocusedOption()​

getFocusedOption(): { name: string; type: String; value: string; } | { name: string; type: Integer; value: string | number; } | { name: string; type: Number; value: string | number; }

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:309

Gets the focused option for an autocomplete interaction

Returns​

{ name: string; type: String; value: string; } | { name: string; type: Integer; value: string | number; } | { name: string; type: Number; value: string | number; }


getInteger()​

getInteger<Required>(name: string, required?: Required): If<Required, number>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:168

Gets an integer option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, number>


getMember()​

getMember<Required>(name: string, required?: Required): If<Required, APIInteractionDataResolvedGuildMember>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:201

Gets a member option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIInteractionDataResolvedGuildMember>


getMentionable()​

getMentionable<Required>(name: string, required?: Required): If<Required, APIRole | APIUser | APIInteractionDataResolvedGuildMember>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:238

Gets a mentionable option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIRole | APIUser | APIInteractionDataResolvedGuildMember>


getNumber()​

getNumber<Required>(name: string, required?: Required): If<Required, number>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:179

Gets a number option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, number>


getRole()​

getRole<Required>(name: string, required?: Required): If<Required, APIRole>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:216

Gets a role option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIRole>


getString()​

getString<Required>(name: string, required?: Required): If<Required, string>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:157

Gets a string option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, string>


getSubcommand()​

getSubcommand<Required>(required?: Required): If<Required, string>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:107

Gets the selected subcommand

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
required?RequiredWhether to throw an error if there is no subcommand

Returns​

If<Required, string>


getSubcommandGroup()​

getSubcommandGroup<Required>(required?: Required): If<Required, string>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:120

Gets the selected subcommand group

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
required?RequiredWhether to throw an error if there is no subcommand group

Returns​

If<Required, string>


getTargetMember()​

getTargetMember<Required>(required?: Required): If<Required, APIInteractionDataResolvedGuildMember>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:280

Gets the target member for a context menu interaction

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
required?RequiredWhether to throw an error if the member data is not present

Returns​

If<Required, APIInteractionDataResolvedGuildMember>


getTargetMessage()​

getTargetMessage(): APIMessage

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:298

Gets the target message for a context menu interaction

Returns​

APIMessage


getTargetUser()​

getTargetUser(): APIUser

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:268

Gets the target user for a context menu interaction

Returns​

APIUser


getTypedOption()​

private getTypedOption<Option, Required>(name: string, type: Option, required: Required): If<Required, TypeToOptionMap[Option]>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:330

Type Parameters​

Type ParameterDefault type
Option extends String | Integer | Boolean | User | Channel | Role | Mentionable | Number | Attachment-
Required extends booleanfalse

Parameters​

ParameterType
namestring
typeOption
requiredRequired

Returns​

If<Required, TypeToOptionMap[Option]>


getUser()​

getUser<Required>(name: string, required?: Required): If<Required, APIUser>

Defined in: projects/utilities/packages/discord-utilities/src/lib/InteractionOptionResolver.ts:190

Gets a user option

Type Parameters​

Type ParameterDefault type
Required extends booleanfalse

Parameters​

ParameterTypeDescription
namestringThe name of the option
required?RequiredWhether to throw an error if the option is not found

Returns​

If<Required, APIUser>