diff --git a/src/i18n/en-GB.yml b/src/i18n/en-GB.yml index 00b31b0..1efaddb 100644 --- a/src/i18n/en-GB.yml +++ b/src/i18n/en-GB.yml @@ -398,6 +398,14 @@ misc: not_ticket: description: You can only use this command in tickets. title: ❌ This isn't a ticket channel + permissions_error: + description: Sorry, the operation failed due to insufficient permissions. + fields: + for_admins: + name: For server administrators + value: > + [Click here]({url}) for resolution instructions. + title: ⚠️ Something went wrong ratelimited: description: Try again in a few seconds. title: 🐢 Please slow down diff --git a/src/lib/error.js b/src/lib/error.js index f57c021..d845f6d 100644 --- a/src/lib/error.js +++ b/src/lib/error.js @@ -59,6 +59,19 @@ module.exports.handleInteractionError = async event => { }, ]), ); + } else if (/Missing Permissions/.test(error.message)) { + data.embeds.push( + new EmbedBuilder() + .setColor('Orange') + .setTitle(getMessage('misc.permissions_error.title')) + .setDescription(getMessage('misc.permissions_error.description')) + .addFields([ + { + name: getMessage('misc.permissions_error.fields.for_admins.name'), + value: getMessage('misc.permissions_error.fields.for_admins.value', { url: 'https://discordtickets.app/self-hosting/troubleshooting/#missing-permissions' }), + }, + ]), + ); } else { data.embeds.push( new EmbedBuilder()