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.