const { SlashCommand } = require('@eartharoid/dbf'); const { ApplicationCommandOptionType } = require('discord.js'); module.exports = class ForceCloseSlashCommand extends SlashCommand { constructor(client, options) { const descriptionLocalizations = {}; client.i18n.locales.forEach(l => (descriptionLocalizations[l] = client.i18n.getMessage(l, 'commands.slash.force-close.description'))); const nameLocalizations = {}; client.i18n.locales.forEach(l => (nameLocalizations[l] = client.i18n.getMessage(l, 'commands.slash.force-close.name'))); let opts = [ { name: 'channel', required: false, type: ApplicationCommandOptionType.Channel, }, { name: 'number', required: false, type: ApplicationCommandOptionType.Integer, }, { name: 'reason', required: false, type: ApplicationCommandOptionType.String, }, { name: 'time', required: false, type: ApplicationCommandOptionType.String, }, ]; opts = opts.map(o => { const descriptionLocalizations = {}; client.i18n.locales.forEach(l => (descriptionLocalizations[l] = client.i18n.getMessage(l, `commands.slash.force-close.options.${o.name}.description`))); const nameLocalizations = {}; client.i18n.locales.forEach(l => (nameLocalizations[l] = client.i18n.getMessage(l, `commands.slash.force-close.options.${o.name}.name`))); return { ...o, description: descriptionLocalizations['en-GB'], descriptionLocalizations, nameLocalizations: nameLocalizations, }; }); super(client, { ...options, description: descriptionLocalizations['en-GB'], descriptionLocalizations, dmPermission: false, name: nameLocalizations['en-GB'], nameLocalizations, options: opts, }); } async run(interaction) { } };