mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-18 01:07:22 +00:00
I prefer semicolors, they also help avoiding certain pitfalls in JavaScript/TypeScript, such as the following code sample: ```js const xyz = "test" (something.else as string) = "another" ``` This results in a TypeError: "test" is not a function, this is because js thinks we are trying to call the string "test" as a function. To fix this it requires a `;` somewhere before the `(`, such as `;(something ... ` which in my opinion is ugly and less clean overall.
28 lines
804 B
TypeScript
28 lines
804 B
TypeScript
import { type ApplicationCommandOption, type ApplicationCommandTypes, Collection } from '@discordeno/bot';
|
|
import type { bot } from './bot.js';
|
|
|
|
export const commands = new Collection<string, Command>();
|
|
|
|
export function createCommand(command: Command): void {
|
|
commands.set(command.name, command);
|
|
}
|
|
|
|
export interface Command {
|
|
name: string;
|
|
description: string;
|
|
usage?: string[];
|
|
options?: ApplicationCommandOption[];
|
|
type: ApplicationCommandTypes;
|
|
/** Defaults to `Guild` */
|
|
scope?: 'Global' | 'Guild';
|
|
execute: (interaction: typeof bot.transformers.$inferredTypes.interaction) => unknown;
|
|
subcommands?: Array<SubCommandGroup | SubCommand>;
|
|
}
|
|
|
|
export type SubCommand = Omit<Command, 'subcommands'>;
|
|
|
|
export interface SubCommandGroup {
|
|
name: string;
|
|
subCommands: SubCommand[];
|
|
}
|