import { ButtonInteraction, CommandInteraction, Interaction, InteractionResponse, PermissionsString } from "discord.js";
import DiscordClient from "../../client/client";
import { SlashCommandBuilder, SlashCommandSubcommandsOnlyBuilder } from "@discordjs/builders";
export default abstract class BaseCommand {
constructor(private data: Omit<SlashCommandBuilder, "addSubcommand" | "addSubcommandGroup"> | SlashCommandSubcommandsOnlyBuilder, private category: string, private permissions: Array<PermissionsString>, private global: boolean) {}
getData(): Omit<SlashCommandBuilder, "addSubcommand" | "addSubcommandGroup"> | SlashCommandSubcommandsOnlyBuilder {
return this.data;
}
getName(): string {
return this.data.name;
}
getDescription(): string {
return this.data.description;
}
getCategory(): string {
return this.category;
}
getPermissions(): Array<PermissionsString> {
return this.permissions;
}
isGlobal(): boolean {
return this.global;
}
abstract run(client: DiscordClient, interaction: Interaction | ButtonInteraction | CommandInteraction): Promise<InteractionResponse<boolean> | void>;
}
import { ButtonInteraction, CommandInteraction, Interaction, InteractionResponse, PermissionsString } from "discord.js";
import DiscordClient from "../../client/client";
import { SlashCommandBuilder, SlashCommandSubcommandsOnlyBuilder } from "@discordjs/builders";
export default abstract class BaseCommand {
constructor(private data: Omit<SlashCommandBuilder, "addSubcommand" | "addSubcommandGroup"> | SlashCommandSubcommandsOnlyBuilder, private category: string, private permissions: Array<PermissionsString>, private global: boolean) {}
getData(): Omit<SlashCommandBuilder, "addSubcommand" | "addSubcommandGroup"> | SlashCommandSubcommandsOnlyBuilder {
return this.data;
}
getName(): string {
return this.data.name;
}
getDescription(): string {
return this.data.description;
}
getCategory(): string {
return this.category;
}
getPermissions(): Array<PermissionsString> {
return this.permissions;
}
isGlobal(): boolean {
return this.global;
}
abstract run(client: DiscordClient, interaction: Interaction | ButtonInteraction | CommandInteraction): Promise<InteractionResponse<boolean> | void>;
}