import { SlashCommandBuilder, ChatInputCommandInteraction } from "discord.js"; import { guildID } from "../config.json"; export interface DiscordInteractionCommandSkeleton { GUILD_ID: string; builder?: SlashCommandBuilder; description: string; execute: (interaction: ChatInputCommandInteraction) => Error | Promise; name: string; } export default abstract class DiscordInteractionCommand implements DiscordInteractionCommandSkeleton { public name: string; public description: string; public builder: SlashCommandBuilder; public GUILD_ID: string; protected constructor(name: string, description: string) { this.name = name; this.description = description; this.builder = new SlashCommandBuilder(); this.builder.setName(this.name); this.builder.setDescription(this.description); this.GUILD_ID = guildID; } public abstract execute(interaction: ChatInputCommandInteraction): Error | Promise; }