import { SlashCommandArgument, SlashCommandNamedArgument } from './SlashCommandArgument.js';
export class SlashCommand {
/**@type {string}*/ name;
/**@type {Function}*/ callback;
/**@type {string}*/ helpString;
/**@type {boolean}*/ interruptsGeneration = true;
/**@type {boolean}*/ purgeFromMessage = true;
/**@type {string[]}*/ aliases = [];
/**@type {string}*/ returns;
/**@type {SlashCommandNamedArgument[]}*/ namedArgumentList = [];
/**@type {SlashCommandArgument[]}*/ unnamedArgumentList = [];
get helpStringFormatted() {
let aliases = '';
if (this.aliases?.length > 0) {
aliases = ' (alias: ';
aliases += this.aliases
.map(it=>`/${it}`)
.join(', ')
;
aliases += ')';
}
return `/${this.name} ${this.helpString}${aliases}`;
}
}