const { SlashCommand } = require('@eartharoid/dbf'); const { ApplicationCommandOptionType } = require('discord.js'); const { useGuild } = require('../../lib/tickets/utils'); module.exports = class NewSlashCommand extends SlashCommand { constructor(client, options) { const descriptionLocalizations = {}; client.i18n.locales.forEach(l => (descriptionLocalizations[l] = client.i18n.getMessage(l, 'commands.slash.new.description'))); const nameLocalizations = {}; client.i18n.locales.forEach(l => (nameLocalizations[l] = client.i18n.getMessage(l, 'commands.slash.new.name'))); let opts = [ { autocomplete: true, name: 'references', required: false, type: ApplicationCommandOptionType.String, }, ]; opts = opts.map(o => { const descriptionLocalizations = {}; client.i18n.locales.forEach(l => (descriptionLocalizations[l] = client.i18n.getMessage(l, `commands.slash.new.options.${o.name}.description`))); const nameLocalizations = {}; client.i18n.locales.forEach(l => (nameLocalizations[l] = client.i18n.getMessage(l, `commands.slash.new.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, }); } /** * * @param {import("discord.js").ChatInputCommandInteraction} interaction */ async run(interaction) { await useGuild(this.client, interaction, { referencesTicketId: interaction.options.getString('references', false) }); } };