Files
blitzkit/src/commands/command.ts
T
2023-04-17 19:02:53 -05:00

29 lines
772 B
TypeScript

import {
ApplicationCommandOptionChoiceData,
AutocompleteFocusedOption,
AutocompleteInteraction,
CommandInteraction,
PermissionsString,
} from 'discord.js';
import { RateLimiter } from 'discord.js-rate-limiter';
import { EventData } from '../models/internal-models.js';
export interface Command {
names: string[];
cooldown?: RateLimiter;
deferType: CommandDeferType;
requireClientPerms: PermissionsString[];
autocomplete?(
intr: AutocompleteInteraction,
option: AutocompleteFocusedOption
): Promise<ApplicationCommandOptionChoiceData[]>;
execute(intr: CommandInteraction, data: EventData): Promise<void>;
}
export enum CommandDeferType {
PUBLIC = 'PUBLIC',
HIDDEN = 'HIDDEN',
NONE = 'NONE',
}