diff --git a/commands/admin/response/slash.js b/commands/admin/response/slash.js index fb592ef..9e93801 100644 --- a/commands/admin/response/slash.js +++ b/commands/admin/response/slash.js @@ -1,138 +1,139 @@ -import { - SlashCommandBuilder, - PermissionFlagsBits, - AutocompleteInteraction, - ChatInputCommandInteraction -} from 'discord.js'; - -/** @param {ChatInputCommandInteraction} interaction */ -async function createResponse(interaction) {} - -/** @param {ChatInputCommandInteraction} interaction */ -async function addResponse(interaction) {} - -/** @param {ChatInputCommandInteraction} interaction */ -async function removeResponse(interaction) {} - -/** @param {ChatInputCommandInteraction} interaction */ -async function listResponse(interaction) {} - -/** @param {ChatInputCommandInteraction} interaction */ -async function infoResponse(interaction) {} - -/** @param {AutocompleteInteraction} interaction */ -async function addAutocomplete(interaction) {} - -/** @param {AutocompleteInteraction} interaction */ -async function removeAutocomplete(interaction) {} - -/** @param {AutocompleteInteraction} interaction */ -async function infoAutocomplete(interaction) {} - -export const data = new SlashCommandBuilder() - .setName('response') - .setDMPermission(false) - .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages) - .setDescription('Event based responses to specific messages with keywords.') - .addSubcommand((subcommand) => - subcommand - .setName('create') - .setDescription('Creates a new event based response.') - .addStringOption((option) => - option - .setName('keyword') - .setDescription('The keyword to trigger the response.') - .setRequired(true) - ) - ) - .addSubcommand((subcommand) => - subcommand - .setName('add') - .setDescription('Registers a response to a keyword.') - .addStringOption((option) => - option - .setName('keyword') - .setDescription('The keyword to trigger the response.') - .setAutocomplete(true) - .setRequired(true) - ) - ) - .addSubcommand((subcommand) => - subcommand - .setName('remove') - .setDescription('Unregisters a response to a keyword.') - .addStringOption((option) => - option - .setName('type') - .setDescription('The type of data to be removed.') - .setRequired(true) - .addChoices( - { name: 'Keyword', value: 'keyword' }, - { name: 'Response', value: 'response' } - ) - ) - .addStringOption((option) => - option - .setName('name') - .setDescription('The name of the data to be removed.') - .setAutocomplete(true) - .setRequired(true) - ) - ) - .addSubcommand((subcommand) => - subcommand.setName('list').setDescription('Lists all registered keywords.') - ) - .addSubcommand((subcommand) => - subcommand - .setName('info') - .setDescription('Shows information about a registered keyword.') - .addStringOption((option) => - option - .setName('keyword') - .setDescription('The keyword to show the details of.') - .setAutocomplete(true) - .setRequired(true) - ) - ); -/** @param {ModalSubmitInteraction} interaction */ -export async function modalSubmit(interaction) { - // Only executable in 'add' subcommand -} -/** @param {AutocompleteInteraction} interaction */ -export async function autocomplete(interaction) { - const { options } = interaction; - - switch (options.getSubcommand()) { - case 'add': - addAutocomplete(interaction); - break; - case 'remove': - removeAutocomplete(interaction); - break; - case 'info': - infoAutocomplete(interaction); - break; - } -} -/** @param {ChatInputCommandInteraction} interaction */ -export async function execute(interaction) { - const { options } = interaction; - - switch (options.getSubcommand()) { - case 'create': - createResponse(interaction); - break; - case 'add': - addResponse(interaction); - break; - case 'remove': - removeResponse(interaction); - break; - case 'list': - listResponse(interaction); - break; - case 'info': - infoResponse(interaction); - break; - } -} +import { + SlashCommandBuilder, + PermissionFlagsBits, + ModalSubmitInteraction, + AutocompleteInteraction, + ChatInputCommandInteraction +} from 'discord.js'; + +/** @param {ChatInputCommandInteraction} interaction */ +async function createResponse(interaction) {} + +/** @param {ChatInputCommandInteraction} interaction */ +async function addResponse(interaction) {} + +/** @param {ChatInputCommandInteraction} interaction */ +async function removeResponse(interaction) {} + +/** @param {ChatInputCommandInteraction} interaction */ +async function listResponse(interaction) {} + +/** @param {ChatInputCommandInteraction} interaction */ +async function infoResponse(interaction) {} + +/** @param {AutocompleteInteraction} interaction */ +async function addAutocomplete(interaction) {} + +/** @param {AutocompleteInteraction} interaction */ +async function removeAutocomplete(interaction) {} + +/** @param {AutocompleteInteraction} interaction */ +async function infoAutocomplete(interaction) {} + +export const data = new SlashCommandBuilder() + .setName('response') + .setDMPermission(false) + .setDefaultMemberPermissions(PermissionFlagsBits.ManageMessages) + .setDescription('Event based responses to specific messages with keywords.') + .addSubcommand((subcommand) => + subcommand + .setName('create') + .setDescription('Creates a new event based response.') + .addStringOption((option) => + option + .setName('keyword') + .setDescription('The keyword to trigger the response.') + .setRequired(true) + ) + ) + .addSubcommand((subcommand) => + subcommand + .setName('add') + .setDescription('Registers a response to a keyword.') + .addStringOption((option) => + option + .setName('keyword') + .setDescription('The keyword to trigger the response.') + .setAutocomplete(true) + .setRequired(true) + ) + ) + .addSubcommand((subcommand) => + subcommand + .setName('remove') + .setDescription('Unregisters a response to a keyword.') + .addStringOption((option) => + option + .setName('type') + .setDescription('The type of data to be removed.') + .setRequired(true) + .addChoices( + { name: 'Keyword', value: 'keyword' }, + { name: 'Response', value: 'response' } + ) + ) + .addStringOption((option) => + option + .setName('name') + .setDescription('The name of the data to be removed.') + .setAutocomplete(true) + .setRequired(true) + ) + ) + .addSubcommand((subcommand) => + subcommand.setName('list').setDescription('Lists all registered keywords.') + ) + .addSubcommand((subcommand) => + subcommand + .setName('info') + .setDescription('Shows information about a registered keyword.') + .addStringOption((option) => + option + .setName('keyword') + .setDescription('The keyword to show the details of.') + .setAutocomplete(true) + .setRequired(true) + ) + ); +/** @param {ModalSubmitInteraction} interaction */ +export async function modalSubmit(interaction) { + // Only executable in 'add' subcommand +} +/** @param {AutocompleteInteraction} interaction */ +export async function autocomplete(interaction) { + const { options } = interaction; + + switch (options.getSubcommand()) { + case 'add': + addAutocomplete(interaction); + break; + case 'remove': + removeAutocomplete(interaction); + break; + case 'info': + infoAutocomplete(interaction); + break; + } +} +/** @param {ChatInputCommandInteraction} interaction */ +export async function execute(interaction) { + const { options } = interaction; + + switch (options.getSubcommand()) { + case 'create': + createResponse(interaction); + break; + case 'add': + addResponse(interaction); + break; + case 'remove': + removeResponse(interaction); + break; + case 'list': + listResponse(interaction); + break; + case 'info': + infoResponse(interaction); + break; + } +}