Skip to main content

Class: Command<PreParseReturn, O>

The piece to be stored in AliasStore instances.

Type parameters

NameType
PreParseReturnArgs
Oextends Options = Options

Hierarchy

Constructors

constructor

new Command<PreParseReturn, O>(context, options?)

Type parameters

NameType
PreParseReturnArgs
Oextends CommandOptions = CommandOptions

Parameters

NameTypeDescription
contextPieceContextThe context.
optionsOOptional Command settings.

Since

1.0.0

Overrides

AliasPiece.constructor

Defined in

projects/framework/src/lib/structures/Command.ts:92

Properties

aliases

aliases: readonly string[]

The aliases for the piece.

Inherited from

AliasPiece.aliases

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:687


applicationCommandRegistry

Readonly applicationCommandRegistry: ApplicationCommandRegistry

The application command registry associated with this command.

Since

3.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:78


description

description: string

A basic summary about the command

Since

1.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:37


detailedDescription

detailedDescription: DetailedDescriptionCommand

Longer version of command's summary and how to use it

Since

1.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:49


enabled

enabled: boolean

Whether or not the piece is enabled.

Inherited from

AliasPiece.enabled

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:450


fullCategory

Readonly fullCategory: readonly string[]

The full category for the command. Either an array of strings that denote every (sub)folder the command is in, or null if it could not be resolved automatically.

If this is null with how you set up your code then you can overwrite how the fullCategory is resolved by extending this class and overwriting the assignment in the constructor.

Since

2.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:59


lexer

Private lexer: Lexer

The lexer to be used for command parsing

Since

1.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:85


location

Readonly location: PieceLocation

The location metadata for the piece's file.

Inherited from

AliasPiece.location

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:442


name

Readonly name: string

The name of the piece.

Inherited from

AliasPiece.name

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:446


options

Readonly options: O

The raw options passed to this Piece

Inherited from

AliasPiece.options

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:454


preconditions

preconditions: PreconditionContainerArray

The preconditions to be run.

Since

1.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:43


store

store: CommandStore

The CommandStore that contains this Command.

Overrides

AliasPiece.store

Defined in

projects/framework/src/lib/structures/Command.ts:31


strategy

strategy: IUnorderedStrategy

The strategy to use for the lexer.

Since

1.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:65


typing

typing: boolean

If SapphireClient.typing is true, it can be overridden for a specific command using this property, set via its options. Otherwise, this property will be ignored.

Default

true

Defined in

projects/framework/src/lib/structures/Command.ts:72

Accessors

category

get category(): null | string

The main category for the command, if any.

This getter retrieves the first value of fullCategory, if it has at least one item, otherwise it returns null.

Returns

null | string

Note

You can set fullCategory to override the built-in category resolution.

Defined in

projects/framework/src/lib/structures/Command.ts:149


container

get container(): Container

A reference to the Container object for ease of use.

Returns

Container

See

container

Inherited from

AliasPiece.container

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:460


parentCategory

get parentCategory(): null | string

The parent category for the command.

This getter retrieves the last value of fullCategory, if it has at least one item, otherwise it returns null.

Returns

null | string

Note

You can set fullCategory to override the built-in category resolution.

Defined in

projects/framework/src/lib/structures/Command.ts:173


subCategory

get subCategory(): null | string

The sub-category for the command, if any.

This getter retrieves the second value of fullCategory, if it has at least two items, otherwise it returns null.

Returns

null | string

Note

You can set fullCategory to override the built-in category resolution.

Defined in

projects/framework/src/lib/structures/Command.ts:161

Methods

autocompleteRun

Optional autocompleteRun(interaction): unknown

Executes the autocomplete logic.

tip

You may use this, or alternatively create an interaction handler to handle autocomplete interactions. Keep in mind that commands take precedence over interaction handlers.

Parameters

NameTypeDescription
interactionAutocompleteInteraction<CacheType>The interaction that triggered the autocomplete.

Returns

unknown

Defined in

projects/framework/src/lib/structures/Command.ts:211


chatInputRun

Optional chatInputRun(interaction, context): unknown

Executes the application command's logic.

Parameters

NameTypeDescription
interactionChatInputCommandInteraction<CacheType>The interaction that triggered the command.
contextChatInputCommandContextThe chat input command run context.

Returns

unknown

Defined in

projects/framework/src/lib/structures/Command.ts:190


contextMenuRun

Optional contextMenuRun(interaction, context): unknown

Executes the context menu's logic.

Parameters

NameTypeDescription
interactionContextMenuCommandInteraction<CacheType>The interaction that triggered the command.
contextContextMenuCommandContextThe context menu command run context.

Returns

unknown

Defined in

projects/framework/src/lib/structures/Command.ts:197


messagePreParse

messagePreParse(message, parameters, context): Awaitable<PreParseReturn>

The message pre-parse method. This method can be overridden by plugins to define their own argument parser.

Parameters

NameTypeDescription
messageMessage<boolean>The message that triggered the command.
parametersstringThe raw parameters as a single string.
contextMessageCommandContextThe command-context used in this execution.

Returns

Awaitable<PreParseReturn>

Defined in

projects/framework/src/lib/structures/Command.ts:135


messageRun

Optional messageRun(message, args, context): unknown

Executes the message command's logic.

Parameters

NameTypeDescription
messageMessage<boolean>The message that triggered the command.
argsPreParseReturnThe value returned by messagePreParse, by default an instance of Args.
contextMessageCommandContextThe context in which the command was executed.

Returns

unknown

Defined in

projects/framework/src/lib/structures/Command.ts:183


onLoad

onLoad(): unknown

Per-piece listener that is called when the piece is loaded into the store. Useful to set-up asynchronous initialization tasks.

Returns

unknown

Inherited from

AliasPiece.onLoad

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:465


onUnload

onUnload(): unknown

Per-piece listener that is called when the piece is unloaded from the store. Useful to set-up clean-up tasks.

Returns

unknown

Inherited from

AliasPiece.onUnload

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:470


parseConstructorPreConditions

Protected parseConstructorPreConditions(options): void

Parses the command's options and processes them, calling parseConstructorPreConditionsRunIn, parseConstructorPreConditionsNsfw, parseConstructorPreConditionsRequiredClientPermissions, and parseConstructorPreConditionsCooldown.

Parameters

NameTypeDescription
optionsCommandOptionsThe command options given from the constructor.

Returns

void

Since

2.0.0

Defined in

projects/framework/src/lib/structures/Command.ts:342


parseConstructorPreConditionsCooldown

Protected parseConstructorPreConditionsCooldown(options): void

Appends the Cooldown precondition when cooldownLimit and cooldownDelay are both non-zero.

Parameters

NameTypeDescription
optionsCommandOptionsThe command options given from the constructor.

Returns

void

Defined in

projects/framework/src/lib/structures/Command.ts:399


parseConstructorPreConditionsNsfw

Protected parseConstructorPreConditionsNsfw(options): void

Appends the NSFW precondition if nsfw is set to true.

Parameters

NameTypeDescription
optionsCommandOptionsThe command options given from the constructor.

Returns

void

Defined in

projects/framework/src/lib/structures/Command.ts:354


parseConstructorPreConditionsRequiredClientPermissions

Protected parseConstructorPreConditionsRequiredClientPermissions(options): void

Appends the ClientPermissions precondition when requiredClientPermissions resolves to a non-zero bitfield.

Parameters

NameTypeDescription
optionsCommandOptionsThe command options given from the constructor.

Returns

void

Defined in

projects/framework/src/lib/structures/Command.ts:375


parseConstructorPreConditionsRequiredUserPermissions

Protected parseConstructorPreConditionsRequiredUserPermissions(options): void

Appends the UserPermissions precondition when requiredUserPermissions resolves to a non-zero bitfield.

Parameters

NameTypeDescription
optionsCommandOptionsThe command options given from the constructor.

Returns

void

Defined in

projects/framework/src/lib/structures/Command.ts:387


parseConstructorPreConditionsRunIn

Protected parseConstructorPreConditionsRunIn(options): void

Appends the RunIn precondition based on the values passed, defaulting to null, which doesn't add a precondition.

Parameters

NameTypeDescription
optionsCommandOptionsThe command options given from the constructor.

Returns

void

Defined in

projects/framework/src/lib/structures/Command.ts:363


registerApplicationCommands

Optional registerApplicationCommands(registry): Awaitable<void>

Registers the application commands that should be handled by this command.

Parameters

NameTypeDescription
registryApplicationCommandRegistryThis command's registry

Returns

Awaitable<void>

Defined in

projects/framework/src/lib/structures/Command.ts:229


reload

reload(): Promise<void>

Reloads the piece by loading the same path in the store.

Returns

Promise<void>

Overrides

AliasPiece.reload

Defined in

projects/framework/src/lib/structures/Command.ts:259


resolveConstructorPreConditionsRunType

Protected resolveConstructorPreConditionsRunType(types): null | readonly ChannelType[]

Resolves the runIn option into a RunInTypes array.

Parameters

NameTypeDescription
typesundefined | null | ChannelType | CommandOptionsRunType | CommandOptionsRunTypeEnum | readonly (ChannelType | CommandOptionsRunType | CommandOptionsRunTypeEnum)[]The types to resolve.

Returns

null | readonly ChannelType[]

The resolved types, or null if no types were resolved.

Defined in

projects/framework/src/lib/structures/Command.ts:424


supportsAutocompleteInteractions

supportsAutocompleteInteractions(): this is AutocompleteCommand

Type-guard that ensures the command supports handling autocomplete interactions by checking if the handler for it is present

Returns

this is AutocompleteCommand

Defined in

projects/framework/src/lib/structures/Command.ts:255


supportsChatInputCommands

supportsChatInputCommands(): this is ChatInputCommand

Type-guard that ensures the command supports chat input commands by checking if the handler for it is present

Returns

this is ChatInputCommand

Defined in

projects/framework/src/lib/structures/Command.ts:241


supportsContextMenuCommands

supportsContextMenuCommands(): this is ContextMenuCommand

Type-guard that ensures the command supports context menu commands by checking if the handler for it is present

Returns

this is ContextMenuCommand

Defined in

projects/framework/src/lib/structures/Command.ts:248


supportsMessageCommands

supportsMessageCommands(): this is MessageCommand

Type-guard that ensures the command supports message commands by checking if the handler for it is present

Returns

this is MessageCommand

Defined in

projects/framework/src/lib/structures/Command.ts:234


toJSON

toJSON(): CommandJSON

Defines the JSON.stringify behavior of the command.

Returns

CommandJSON

Overrides

AliasPiece.toJSON

Defined in

projects/framework/src/lib/structures/Command.ts:216


unload

unload(): Promise<void>

Unloads and disables the piece.

Returns

Promise<void>

Inherited from

AliasPiece.unload

Defined in

node_modules/@sapphire/pieces/dist/index.d.ts:474