From b3fb838920cbc52cc44056825f5a31babe484a8c Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sun, 24 Jul 2022 16:28:26 +0200 Subject: [PATCH] support argument --- src/commands/misc/help.ts | 56 ++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/src/commands/misc/help.ts b/src/commands/misc/help.ts index bda1b79..9385f57 100644 --- a/src/commands/misc/help.ts +++ b/src/commands/misc/help.ts @@ -1,4 +1,5 @@ import { SlashCommandBuilder } from '@discordjs/builders'; +import { Locale } from 'discord-api-types/v9'; import { Client, CommandInteraction, MessageEmbed } from 'discord.js'; import { getLocale, getLocalizations } from '../../utils/locales'; import { getFilename } from '../../utils/misc'; @@ -7,15 +8,32 @@ export default { data: (client: Client) => { const filename = getFilename(__filename); return new SlashCommandBuilder() - .setName(filename.toLowerCase()) - .setDescription(client.locales.get(client.config.default_lang)?.get(`c_${filename}_desc`) ?? '') - .setNameLocalizations(getLocalizations(client, `c_${filename}_name`, true)) - .setDescriptionLocalizations(getLocalizations(client, `c_${filename}_desc`)); + .setName( + filename.toLowerCase()) + .setDescription(client.locales.get(client.config.default_lang) + ?.get(`c_${filename}_desc`) ?? '') + .setNameLocalizations( + getLocalizations(client, `c_${filename}_name`, true)) + .setDescriptionLocalizations( + getLocalizations(client, `c_${filename}_desc`)) + .addStringOption(option => option + .setName(client.locales.get(client.config.default_lang) + ?.get(`c_${filename}_opt1_name`) ?? '') + .setDescription(client.locales.get(client.config.default_lang) + ?.get(`c_${filename}_opt1_desc`) ?? '') + .setNameLocalizations( + getLocalizations(client, `c_${filename}_opt1_name`, true)) + .setDescriptionLocalizations( + getLocalizations(client, `c_${filename}_opt1_desc`)) + ); }, interaction: async (interaction: CommandInteraction, client: Client) => { const loc = getLocale(client, interaction.locale); - const desired_command = interaction.options.getString('command'); + const desired_command = interaction.options.getString(client + .locales + .get(client.config.default_lang) + ?.get(`c_${getFilename(__filename)}_opt1_name`) ?? ''); // If a command is specified if (desired_command) { @@ -28,20 +46,26 @@ export default { }[] = []; client.commands.categories.forEach((commands_name, category) => { - const commands_description = commands_name.reduce((compteur, command_name) => { - const command = client.commands.list.get(command_name); - let res = `${compteur}- \`${command_name}\` : `; - if (command?.data) { - res += `${command.data.description}.\n`; - } else { - res += `${loc.get('c_help3')}\n`; - } + const commands_description = commands_name.reduce( + (compteur, command_name) => { + const command = client.commands.list.get(command_name); + let res = `${compteur}- \`${command_name}\` : `; + if (command?.data) { + const description = + command.data.description_localizations + ?.[interaction.locale as Locale] + ?? command.data.description; - return res; - }, ''); + res += `${description}\n`; + } else { + res += `${loc.get('c_help3')}\n`; + } + + return res; + }, ''); fields.push({ - name: category, + name: category.toUpperCase(), value: commands_description, }); });