From d3ed6405db75af67527a246f82859e03e784632f Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 26 Oct 2021 16:58:06 +0100 Subject: [PATCH 1/5] fix: #250 by deferring then editing the reply --- src/commands/add.js | 8 ++++---- src/commands/blacklist.js | 12 ++++++------ src/commands/close.js | 16 ++++++++-------- src/commands/help.js | 2 +- src/commands/new.js | 12 ++++++------ src/commands/panel.js | 6 +++--- src/commands/remove.js | 8 ++++---- src/commands/settings.js | 14 +++++++------- src/commands/stats.js | 2 +- src/commands/survey.js | 4 ++-- src/commands/tag.js | 4 ++-- src/commands/topic.js | 4 ++-- src/listeners/interactionCreate.js | 20 +++++++++++--------- src/modules/commands/manager.js | 8 ++++---- 14 files changed, 61 insertions(+), 59 deletions(-) diff --git a/src/commands/add.js b/src/commands/add.js index b6afbd0..6060af7 100644 --- a/src/commands/add.js +++ b/src/commands/add.js @@ -41,7 +41,7 @@ module.exports = class AddCommand extends Command { const t_row = await this.client.tickets.resolve(channel.id, interaction.guild.id); if (!t_row) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -56,7 +56,7 @@ module.exports = class AddCommand extends Command { const member = interaction.options.getMember(default_i18n('commands.add.options.member.name')); if (!member) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -69,7 +69,7 @@ module.exports = class AddCommand extends Command { } if (t_row.creator !== interaction.member.id && !await this.client.utils.isStaff(interaction.member)) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -81,7 +81,7 @@ module.exports = class AddCommand extends Command { }); } - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) diff --git a/src/commands/blacklist.js b/src/commands/blacklist.js index 29c7997..1aff88f 100644 --- a/src/commands/blacklist.js +++ b/src/commands/blacklist.js @@ -65,7 +65,7 @@ module.exports = class BlacklistCommand extends Command { const type = member_or_role instanceof Role ? 'role' : 'member'; if (type === 'member' && await this.client.utils.isStaff(member_or_role)) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -78,7 +78,7 @@ module.exports = class BlacklistCommand extends Command { } blacklist[type + 's'].push(member_or_role.id); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) @@ -97,7 +97,7 @@ module.exports = class BlacklistCommand extends Command { const index = blacklist[type + 's'].findIndex(element => element === member_or_role.id); if (index === -1) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -110,7 +110,7 @@ module.exports = class BlacklistCommand extends Command { } blacklist[type + 's'].splice(index, 1); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) @@ -125,7 +125,7 @@ module.exports = class BlacklistCommand extends Command { } case default_i18n('commands.blacklist.options.show.name'): { if (blacklist.members.length === 0 && blacklist.roles.length === 0) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) @@ -138,7 +138,7 @@ module.exports = class BlacklistCommand extends Command { } else { const members = blacklist.members.map(id => `**·** <@${id}>`); const roles = blacklist.roles.map(id => `**·** <@&${id}>`); - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) diff --git a/src/commands/close.js b/src/commands/close.js index a026cce..97a78bf 100644 --- a/src/commands/close.js +++ b/src/commands/close.js @@ -53,7 +53,7 @@ module.exports = class CloseCommand extends Command { if (time) { if (!await this.client.utils.isStaff(interaction.member)) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -69,7 +69,7 @@ module.exports = class CloseCommand extends Command { try { period = ms(time); } catch { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -89,7 +89,7 @@ module.exports = class CloseCommand extends Command { }); if (tickets.count === 0) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -100,7 +100,7 @@ module.exports = class CloseCommand extends Command { ephemeral: true }); } else { - await interaction.reply({ + await interaction.editReply({ components: [ new MessageActionRow() .addComponents( @@ -193,7 +193,7 @@ module.exports = class CloseCommand extends Command { if (ticket) { t_row = await this.client.tickets.resolve(ticket, interaction.guild.id); if (!t_row) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -207,7 +207,7 @@ module.exports = class CloseCommand extends Command { } else { t_row = await this.client.db.models.Ticket.findOne({ where: { id: interaction.channel.id } }); if (!t_row) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -221,7 +221,7 @@ module.exports = class CloseCommand extends Command { } if (t_row.creator !== interaction.member.id && !await this.client.utils.isStaff(interaction.member)) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -233,7 +233,7 @@ module.exports = class CloseCommand extends Command { }); } - await interaction.reply({ + await interaction.editReply({ components: [ new MessageActionRow() .addComponents( diff --git a/src/commands/help.js b/src/commands/help.js index eed7c8a..6aae2b5 100644 --- a/src/commands/help.js +++ b/src/commands/help.js @@ -34,7 +34,7 @@ module.exports = class HelpCommand extends Command { : command.description; return `**\`/${command.name}\` ·** ${description}`; }); - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) diff --git a/src/commands/new.js b/src/commands/new.js index 8bec13e..9fde687 100644 --- a/src/commands/new.js +++ b/src/commands/new.js @@ -58,7 +58,7 @@ module.exports = class NewCommand extends Command { ], ephemeral: true }; - await i ? i.editReply(response) : interaction.reply(response); + await i ? i.editReply(response) : interaction.editReply(response); } else { const list = tickets.rows.map(row => { if (row.topic) { @@ -81,7 +81,7 @@ module.exports = class NewCommand extends Command { ], ephemeral: true }; - await i ? i.editReply(response) : interaction.reply(response); + await i ? i.editReply(response) : interaction.editReply(response); } } else { try { @@ -98,7 +98,7 @@ module.exports = class NewCommand extends Command { ], ephemeral: true }; - await i ? i.editReply(response) : interaction.reply(response); + await i ? i.editReply(response) : interaction.editReply(response); } catch (error) { const response = { components: [], @@ -112,7 +112,7 @@ module.exports = class NewCommand extends Command { ], ephemeral: true }; - await i ? i.editReply(response) : interaction.reply(response); + await i ? i.editReply(response) : interaction.editReply(response); } } }; @@ -120,7 +120,7 @@ module.exports = class NewCommand extends Command { const categories = await this.client.db.models.Category.findAndCountAll({ where: { guild: interaction.guild.id } }); if (categories.count === 0) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -133,7 +133,7 @@ module.exports = class NewCommand extends Command { } else if (categories.count === 1) { create(categories.rows[0]); // skip the category selection } else { - await interaction.reply({ + await interaction.editReply({ components: [ new MessageActionRow() .addComponents( diff --git a/src/commands/panel.js b/src/commands/panel.js index 03ef9ae..0be0198 100644 --- a/src/commands/panel.js +++ b/src/commands/panel.js @@ -75,7 +75,7 @@ module.exports = class PanelCommand extends Command { const thumbnail = interaction.options.getString(default_i18n('commands.panel.options.thumbnail.name')); if (just_type && categories.length > 1) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -98,7 +98,7 @@ module.exports = class PanelCommand extends Command { }); if (invalid_category) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -196,7 +196,7 @@ module.exports = class PanelCommand extends Command { } } - interaction.reply({ + interaction.editReply({ content: `✅ ${panel_channel}`, ephemeral: true }); diff --git a/src/commands/remove.js b/src/commands/remove.js index 85de1da..1660395 100644 --- a/src/commands/remove.js +++ b/src/commands/remove.js @@ -41,7 +41,7 @@ module.exports = class RemoveCommand extends Command { const t_row = await this.client.tickets.resolve(channel.id, interaction.guild.id); if (!t_row) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -56,7 +56,7 @@ module.exports = class RemoveCommand extends Command { const member = interaction.options.getMember(default_i18n('commands.remove.options.member.name')); if (!member) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -69,7 +69,7 @@ module.exports = class RemoveCommand extends Command { } if (t_row.creator !== interaction.user.id && !await this.client.utils.isStaff(interaction.member)) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -81,7 +81,7 @@ module.exports = class RemoveCommand extends Command { }); } - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) diff --git a/src/commands/settings.js b/src/commands/settings.js index 4959b57..d4cdd47 100644 --- a/src/commands/settings.js +++ b/src/commands/settings.js @@ -233,7 +233,7 @@ module.exports = class SettingsCommand extends Command { roles }); await this.client.commands.updatePermissions(interaction.guild); - interaction.reply({ + interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) @@ -249,7 +249,7 @@ module.exports = class SettingsCommand extends Command { const channel = this.client.channels.cache.get(interaction.options.getString(default_i18n('commands.settings.options.categories.options.delete.options.id.name'))); if (channel) channel.delete(); await category.destroy(); - interaction.reply({ + interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) @@ -258,7 +258,7 @@ module.exports = class SettingsCommand extends Command { ephemeral: true }); } else { - interaction.reply({ + interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -272,7 +272,7 @@ module.exports = class SettingsCommand extends Command { case default_i18n('commands.settings.options.categories.options.edit.name'): { const category = await this.client.db.models.Category.findOne({ where: { id: interaction.options.getString(default_i18n('commands.settings.options.categories.options.delete.options.id.name')) } }); if (!category) { - return interaction.reply({ + return interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -304,7 +304,7 @@ module.exports = class SettingsCommand extends Command { if (roles !== null) category.set('roles', roles.replace(/\s/g, '').split(',')); if (survey !== null) category.set('survey', survey); await category.save(); - interaction.reply({ + interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) @@ -316,7 +316,7 @@ module.exports = class SettingsCommand extends Command { } case default_i18n('commands.settings.options.categories.options.list.name'): { const categories = await this.client.db.models.Category.findAll({ where: { guild: interaction.guild.id } }); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) @@ -343,7 +343,7 @@ module.exports = class SettingsCommand extends Command { if (log_messages !== null) settings.set('log_messages', log_messages); if (success_colour !== null) settings.set('success_colour', success_colour.toUpperCase()); await settings.save(); - interaction.reply({ + interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) diff --git a/src/commands/stats.js b/src/commands/stats.js index 79a832d..a759b73 100644 --- a/src/commands/stats.js +++ b/src/commands/stats.js @@ -90,6 +90,6 @@ module.exports = class StatsCommand extends Command { embeds.push(global_embed); } - await interaction.reply({ embeds }); + await interaction.editReply({ embeds }); } }; diff --git a/src/commands/survey.js b/src/commands/survey.js index 86be0a7..3ca0956 100644 --- a/src/commands/survey.js +++ b/src/commands/survey.js @@ -90,7 +90,7 @@ module.exports = class SurveyCommand extends Command { `${survey.name}.html` ); - return await interaction.reply({ + return await interaction.editReply({ ephemeral: true, files: [attachment] }); @@ -98,7 +98,7 @@ module.exports = class SurveyCommand extends Command { const surveys = await this.client.db.models.Survey.findAll({ where: { guild: interaction.guild.id } }); const list = surveys.map(s => `❯ **\`${s.name}\`**`); - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) diff --git a/src/commands/tag.js b/src/commands/tag.js index 7bbf00b..6fbec73 100644 --- a/src/commands/tag.js +++ b/src/commands/tag.js @@ -46,7 +46,7 @@ module.exports = class TagCommand extends Command { const arg = args.find(arg => arg.name === $1); return arg ? arg.value : $; }); - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) @@ -56,7 +56,7 @@ module.exports = class TagCommand extends Command { }); } catch { const list = Object.keys(settings.tags).map(t => `❯ **\`${t}\`**`); - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) diff --git a/src/commands/topic.js b/src/commands/topic.js index 7fa6139..e04115f 100644 --- a/src/commands/topic.js +++ b/src/commands/topic.js @@ -36,7 +36,7 @@ module.exports = class TopicCommand extends Command { const t_row = await this.client.db.models.Ticket.findOne({ where: { id: interaction.channel.id } }); if (!t_row) { - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -70,7 +70,7 @@ module.exports = class TopicCommand extends Command { ] }); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) diff --git a/src/listeners/interactionCreate.js b/src/listeners/interactionCreate.js index c1449c3..a09e737 100644 --- a/src/listeners/interactionCreate.js +++ b/src/listeners/interactionCreate.js @@ -17,13 +17,15 @@ module.exports = class InteractionCreateEventListener extends EventListener { async execute(interaction) { this.client.log.debug(interaction); + await interaction.deferReply(); + const settings = await this.client.utils.getSettings(interaction.guild.id); const i18n = this.client.i18n.getLocale(settings.locale); const blacklisted = settings.blacklist.members.includes[interaction.user.id] || interaction.member?.roles.cache?.some(role => settings.blacklist.roles.includes(role)); if (blacklisted) { - return interaction.reply({ + return interaction.editReply({ content: i18n('blacklisted'), ephemeral: true }); @@ -34,7 +36,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { if (!cat_row) { this.client.log.warn('Could not find a category with the ID given by a panel interaction'); - return interaction.reply({ + return interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -55,7 +57,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { if (tickets.count >= cat_row.max_per_member) { if (cat_row.max_per_member === 1) { - return interaction.reply({ + return interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -76,7 +78,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { return `<#${row.id}>`; } }); - return interaction.reply({ + return interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -91,7 +93,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { } else { try { const t_row = await this.client.tickets.create(interaction.guild.id, interaction.user.id, id); - return interaction.reply({ + return interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.success_colour) @@ -104,7 +106,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { }); } catch (error) { this.client.log.error(error); - return interaction.reply({ + return interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -141,7 +143,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { this.client.log.info(`${interaction.user.tag} has claimed "${interaction.channel.name}" in "${interaction.guild.name}"`); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) @@ -191,7 +193,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { this.client.log.info(`${interaction.user.tag} has released "${interaction.channel.name}" in "${interaction.guild.name}"`); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.colour) @@ -228,7 +230,7 @@ module.exports = class InteractionCreateEventListener extends EventListener { } else if (interaction.customId.startsWith('ticket.close')) { // handle ticket close button const t_row = await this.client.db.models.Ticket.findOne({ where: { id: interaction.channel.id } }); - await interaction.reply({ + await interaction.editReply({ components: [ new MessageActionRow() .addComponents( diff --git a/src/modules/commands/manager.js b/src/modules/commands/manager.js index 9bb637f..125141a 100644 --- a/src/modules/commands/manager.js +++ b/src/modules/commands/manager.js @@ -165,7 +165,7 @@ module.exports = class CommandManager { if (!bot_permissions.has(required_bot_permissions)) { const perms = required_bot_permissions.map(p => `\`${p}\``).join(', '); if (bot_permissions.has('EMBED_LINKS')) { - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor('ORANGE') @@ -174,7 +174,7 @@ module.exports = class CommandManager { ] }); } else { - await interaction.reply({ content: i18n('bot.missing_permissions.description', perms) }); + await interaction.editReply({ content: i18n('bot.missing_permissions.description', perms) }); } return; } @@ -182,7 +182,7 @@ module.exports = class CommandManager { const missing_permissions = command.permissions instanceof Array && !interaction.member.permissions.has(command.permissions); if (missing_permissions) { const perms = command.permissions.map(p => `\`${p}\``).join(', '); - return await interaction.reply({ + return await interaction.editReply({ embeds: [ new MessageEmbed() .setColor(settings.error_colour) @@ -199,7 +199,7 @@ module.exports = class CommandManager { } catch (e) { this.client.log.warn(`An error occurred whilst executing the ${command.name} command`); this.client.log.error(e); - await interaction.reply({ + await interaction.editReply({ embeds: [ new MessageEmbed() .setColor('ORANGE') From 7411fb9c393cc92c98740a162a477b13a5e582d7 Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 26 Oct 2021 16:59:14 +0100 Subject: [PATCH 2/5] fix(settings): role ID parsing Fixes Discord's dumb `,` problem and also allows writing something like `none` to clear the array --- src/commands/settings.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/settings.js b/src/commands/settings.js index d4cdd47..d226e17 100644 --- a/src/commands/settings.js +++ b/src/commands/settings.js @@ -203,7 +203,7 @@ module.exports = class SettingsCommand extends Command { switch (interaction.options.getSubcommand()) { case default_i18n('commands.settings.options.categories.options.create.name'): { const name = interaction.options.getString(default_i18n('commands.settings.options.categories.options.create.options.name.name')); - const roles = interaction.options.getString(default_i18n('commands.settings.options.categories.options.create.options.roles.name'))?.replace(/\s/g, '').split(','); + const roles = interaction.options.getString(default_i18n('commands.settings.options.categories.options.create.options.roles.name'))?.match(/\d{17,19}/g) ?? []; const allowed_permissions = ['VIEW_CHANNEL', 'READ_MESSAGE_HISTORY', 'SEND_MESSAGES', 'EMBED_LINKS', 'ATTACH_FILES']; const cat_channel = await interaction.guild.channels.create(name, { permissionOverwrites: [ @@ -299,9 +299,9 @@ module.exports = class SettingsCommand extends Command { if (name_format !== null) category.set('name_format', name_format); if (opening_message !== null) category.set('opening_message', opening_message.replace(/\\n/g, '\n')); if (opening_questions !== null) category.set('opening_questions', JSON.parse(opening_questions)); - if (ping !== null) category.set('ping', ping.replace(/\s/g, '').split(',')); + if (ping !== null) category.set('ping', ping.match(/\d{17,19}/g) ?? []); if (require_topic !== null) category.set('require_topic', require_topic); - if (roles !== null) category.set('roles', roles.replace(/\s/g, '').split(',')); + if (roles !== null) category.set('roles', roles.match(/\d{17,19}/g) ?? []); if (survey !== null) category.set('survey', survey); await category.save(); interaction.editReply({ From 410abcafe93fdd6511fbbd72671e788551fad017 Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 26 Oct 2021 17:02:42 +0100 Subject: [PATCH 3/5] build: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2791873..6b1f7f3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eartharoid/discord-tickets", - "version": "3.1.2", + "version": "3.1.3", "private": true, "description": "An open-source Discord bot for ticket management", "main": "src/index.js", From e38b66e4dd9ab4ff18e074bbe48d651d7a939a39 Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 26 Oct 2021 20:27:42 +0100 Subject: [PATCH 4/5] fix: problem caused by previous #250 fix --- src/listeners/interactionCreate.js | 2 -- src/modules/commands/manager.js | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/listeners/interactionCreate.js b/src/listeners/interactionCreate.js index a09e737..861d7ca 100644 --- a/src/listeners/interactionCreate.js +++ b/src/listeners/interactionCreate.js @@ -17,8 +17,6 @@ module.exports = class InteractionCreateEventListener extends EventListener { async execute(interaction) { this.client.log.debug(interaction); - await interaction.deferReply(); - const settings = await this.client.utils.getSettings(interaction.guild.id); const i18n = this.client.i18n.getLocale(settings.locale); diff --git a/src/modules/commands/manager.js b/src/modules/commands/manager.js index 125141a..934b9f8 100644 --- a/src/modules/commands/manager.js +++ b/src/modules/commands/manager.js @@ -148,6 +148,7 @@ module.exports = class CommandManager { */ async handle(interaction) { if (!interaction.guild) return this.client.log.debug('Ignoring non-guild command interaction'); + await interaction.deferReply(); const settings = await this.client.utils.getSettings(interaction.guild.id); const i18n = this.client.i18n.getLocale(settings.locale); From a873b80cab84040d11cca4d468c1c4d01c4dfee2 Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 26 Oct 2021 20:28:04 +0100 Subject: [PATCH 5/5] build: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b1f7f3..3f61e48 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eartharoid/discord-tickets", - "version": "3.1.3", + "version": "3.1.4", "private": true, "description": "An open-source Discord bot for ticket management", "main": "src/index.js",