support argument

This commit is contained in:
Mylloon 2022-07-24 16:28:26 +02:00
parent fe7b0ad5d7
commit b3fb838920
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -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,11 +46,17 @@ export default {
}[] = [];
client.commands.categories.forEach((commands_name, category) => {
const commands_description = commands_name.reduce((compteur, command_name) => {
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`;
const description =
command.data.description_localizations
?.[interaction.locale as Locale]
?? command.data.description;
res += `${description}\n`;
} else {
res += `${loc.get('c_help3')}\n`;
}
@ -41,7 +65,7 @@ export default {
}, '');
fields.push({
name: category,
name: category.toUpperCase(),
value: commands_description,
});
});