package fr.lucasdupont.gaytabot.command import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent import net.dv8tion.jda.api.interactions.commands.DefaultMemberPermissions import net.dv8tion.jda.api.interactions.commands.build.OptionData import net.dv8tion.jda.api.interactions.commands.build.SubcommandData interface Command { val name: String val description: String val options: List get() = emptyList() val neededPermissions: DefaultMemberPermissions? get() = null val subcommands: List get() = emptyList() val subcommandGroups: List get() = emptyList() @Throws(Exception::class) fun execute(event: SlashCommandInteractionEvent) fun toSubcommandData(): SubcommandData = SubcommandData(name, description).addOptions(options) }