Skip to main content
Version: 1.x

AppCommandHandler

AppCommandHandler

Handles application commands for CommandKit, including loading, registration, and execution. Manages both slash commands and message commands with middleware support.

Signature
class AppCommandHandler {
public readonly registrar: CommandRegistrar;
public readonly commandRunner: AppCommandRunner = new AppCommandRunner(this);
public readonly externalCommandData: Collection<string, Command> =
new Collection<string, Command>();
public readonly externalMiddlewareData: Collection<string, Middleware> =
new Collection<string, Middleware>();
constructor(commandkit: CommandKit)
printBanner() => void;
getCommandsArray() => LoadedCommand[];
getRuntimeCommandsArray() => LoadedCommand[];
getHierarchicalNodesArray() => LoadedCommand[];
registerCommandHandler() => void;
prepareCommandRun(source: Interaction | Message, cmdName?: string) => Promise<PreparedAppCommandExecution | null>;
resolveMessageCommandName(name: string) => string;
reloadCommands(path?: string, changeType?: RouterFileChangeType) => Promise<void>;
addExternalMiddleware(data: Middleware[]) => Promise<void>;
addExternalCommands(data: Command[]) => Promise<void>;
registerExternalLoadedMiddleware(data: LoadedMiddleware[]) => Promise<void>;
registerExternalLoadedCommands(data: LoadedCommand[]) => Promise<void>;
loadCommands() => Promise<void>;
getMetadataFor(command: string, hint?: 'user' | 'message') => CommandMetadata | null;
}

registrar

Command registrar for handling Discord API registration.

commandRunner

Command runner instance for executing commands.

externalCommandData

property
Collection<string, Command>

External command data storage.

externalMiddlewareData

property
Collection<string, Middleware>

External middleware data storage.

constructor

method
(commandkit: CommandKit) => AppCommandHandler

Creates a new AppCommandHandler instance.

printBanner

method
() => void

Prints a formatted banner showing all loaded commands organized by category.

getCommandsArray

method

Gets an array of all loaded commands, including pre-generated context menu entries.

getRuntimeCommandsArray

method

Gets all executable runtime routes, including hierarchical leaves.

getHierarchicalNodesArray

method

Gets loaded hierarchical command nodes, including non-executable containers.

registerCommandHandler

method
() => void

Registers event handlers for Discord interactions and messages.

prepareCommandRun

method
(source: Interaction | Message, cmdName?: string) => Promise<PreparedAppCommandExecution | null>

Prepares a command for execution by resolving the command and its middleware.

resolveMessageCommandName

method
(name: string) => string

reloadCommands

method
(path?: string, changeType?: RouterFileChangeType) => Promise<void>

Reloads all commands and middleware from scratch.

addExternalMiddleware

method
(data: Middleware[]) => Promise<void>

Adds external middleware data to be loaded.

addExternalCommands

method
(data: Command[]) => Promise<void>

Adds external command data to be loaded.

registerExternalLoadedMiddleware

method
(data: LoadedMiddleware[]) => Promise<void>

Registers externally loaded middleware.

registerExternalLoadedCommands

method
(data: LoadedCommand[]) => Promise<void>

Registers externally loaded commands.

loadCommands

method
() => Promise<void>

Loads all commands and middleware from the router.

getMetadataFor

method
(command: string, hint?: 'user' | 'message') => CommandMetadata | null

Gets the metadata for a command.