Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | import { FlarieInteraction } from './interaction';
export class FlarieCommand {
public readonly name: string;
public readonly allowDMs: boolean;
public readonly description: string;
public readonly disabled: boolean;
#callback: FlarieCommand.Callback;
constructor(rawOptions: string | FlarieCommand.Options, callback: FlarieCommand.Callback) {
const options: FlarieCommand.Options =
typeof rawOptions === 'string' ? { name: rawOptions } : rawOptions;
this.name = options.name;
this.allowDMs = options.allowDMs || true;
this.description = options.description || '<insert-description-here>';
this.disabled = options.disabled || false;
this.#callback = callback;
}
public async invoke(interaction: FlarieInteraction): Promise<void> {
return this.#callback(interaction);
}
}
export namespace FlarieCommand {
export type Callback = (interaction: FlarieInteraction) => Promise<void>;
export type Options = {
name: string;
description?: string;
allowDMs?: boolean;
/**
* This will make the command usable by only admins
*/
disabled?: boolean;
};
}
|