AppCommandHandler
AppCommandHandler
Handles application commands for CommandKit, including loading, registration, and execution. Manages both slash commands and message commands with middleware support.
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
Collection<string, Command>External command data storage.
externalMiddlewareData
Collection<string, Middleware>External middleware data storage.
constructor
(commandkit: CommandKit) => AppCommandHandlerCreates a new AppCommandHandler instance.
printBanner
() => voidPrints a formatted banner showing all loaded commands organized by category.
getCommandsArray
() => LoadedCommand[]Gets an array of all loaded commands, including pre-generated context menu entries.
getRuntimeCommandsArray
() => LoadedCommand[]Gets all executable runtime routes, including hierarchical leaves.
getHierarchicalNodesArray
() => LoadedCommand[]Gets loaded hierarchical command nodes, including non-executable containers.
registerCommandHandler
() => voidRegisters event handlers for Discord interactions and messages.
prepareCommandRun
(source: Interaction | Message, cmdName?: string) => Promise<PreparedAppCommandExecution | null>Prepares a command for execution by resolving the command and its middleware.
resolveMessageCommandName
(name: string) => stringreloadCommands
(path?: string, changeType?: RouterFileChangeType) => Promise<void>Reloads all commands and middleware from scratch.
addExternalMiddleware
(data: Middleware[]) => Promise<void>Adds external middleware data to be loaded.
addExternalCommands
(data: Command[]) => Promise<void>Adds external command data to be loaded.
registerExternalLoadedMiddleware
(data: LoadedMiddleware[]) => Promise<void>Registers externally loaded middleware.
registerExternalLoadedCommands
(data: LoadedCommand[]) => Promise<void>Registers externally loaded commands.
loadCommands
() => Promise<void>Loads all commands and middleware from the router.
getMetadataFor
(command: string, hint?: 'user' | 'message') => CommandMetadata | nullGets the metadata for a command.