2022-08-02 23:13:32 +03:00
|
|
|
const { SlashCommand } = require('@eartharoid/dbf');
|
|
|
|
const { ApplicationCommandOptionType } = require('discord.js');
|
2022-08-14 01:01:44 +03:00
|
|
|
const { useGuild } = require('../../lib/tickets/utils');
|
2022-08-02 23:13:32 +03:00
|
|
|
|
|
|
|
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,
|
2022-08-14 01:01:44 +03:00
|
|
|
type: ApplicationCommandOptionType.String,
|
2022-08-02 23:13:32 +03:00
|
|
|
},
|
|
|
|
];
|
|
|
|
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,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-08-14 01:01:44 +03:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param {import("discord.js").ChatInputCommandInteraction} interaction
|
|
|
|
*/
|
|
|
|
async run(interaction) {
|
|
|
|
await useGuild(this.client, interaction, { referencesTicketId: interaction.options.getString('references', false) });
|
|
|
|
}
|
2022-08-02 23:13:32 +03:00
|
|
|
};
|