diff --git a/README.md b/README.md index cc63107..dd49730 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,4 @@ SUPER= https://www.prisma.io/docs/reference/database-reference/supported-databases -![](https://static.eartharoid.me/k/22/08/02185801.png) - for user/create and slash/force-close \ No newline at end of file +![](https://static.eartharoid.me/k/22/08/02185801.png) - for user/create, slash/force-close and slash/move \ No newline at end of file diff --git a/src/autocomplete/category.js b/src/autocomplete/category.js new file mode 100644 index 0000000..e8c25a1 --- /dev/null +++ b/src/autocomplete/category.js @@ -0,0 +1,12 @@ +const { Autocompleter } = require('@eartharoid/dbf'); + +module.exports = class CategoryCompleter extends Autocompleter { + constructor(client, options) { + super(client, { + ...options, + id: 'category', + }); + } + + async run(value, comamnd, interaction) { } +}; \ No newline at end of file diff --git a/src/commands/slash/move.js b/src/commands/slash/move.js new file mode 100644 index 0000000..6867570 --- /dev/null +++ b/src/commands/slash/move.js @@ -0,0 +1,47 @@ +const { SlashCommand } = require('@eartharoid/dbf'); +const { ApplicationCommandOptionType } = require('discord.js'); + +module.exports = class MoveSlashCommand extends SlashCommand { + constructor(client, options) { + const descriptionLocalizations = {}; + client.i18n.locales.forEach(l => (descriptionLocalizations[l] = client.i18n.getMessage(l, 'commands.slash.move.description'))); + + const nameLocalizations = {}; + client.i18n.locales.forEach(l => (nameLocalizations[l] = client.i18n.getMessage(l, 'commands.slash.move.name'))); + + let opts = [ + { + autocomplete: true, + name: 'category', + required: true, + type: ApplicationCommandOptionType.String, + }, + ]; + opts = opts.map(o => { + const descriptionLocalizations = {}; + client.i18n.locales.forEach(l => (descriptionLocalizations[l] = client.i18n.getMessage(l, `commands.slash.move.options.${o.name}.description`))); + + const nameLocalizations = {}; + client.i18n.locales.forEach(l => (nameLocalizations[l] = client.i18n.getMessage(l, `commands.slash.move.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) { } +}; \ No newline at end of file diff --git a/src/i18n/en-GB.yml b/src/i18n/en-GB.yml index b53b472..a25acfd 100644 --- a/src/i18n/en-GB.yml +++ b/src/i18n/en-GB.yml @@ -54,6 +54,13 @@ commands: time: description: Close all tickets that have been inactive for the specific time name: time + move: + description: Move a ticket to another category + name: move + options: + category: + description: The category to move the ticket to + name: category new: description: Create a new ticket name: new