From 026889413569e12a478af039514a575cff3e7e1a Mon Sep 17 00:00:00 2001 From: Jiralite <33201955+Jiralite@users.noreply.github.com> Date: Wed, 19 Nov 2025 22:51:30 +0000 Subject: [PATCH 1/2] fix(GuildEmojiManager): allow `CreateGuildExpressions` --- packages/discord.js/src/managers/GuildEmojiManager.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/discord.js/src/managers/GuildEmojiManager.js b/packages/discord.js/src/managers/GuildEmojiManager.js index 83ef0e490916..bbbd2caa15bf 100644 --- a/packages/discord.js/src/managers/GuildEmojiManager.js +++ b/packages/discord.js/src/managers/GuildEmojiManager.js @@ -251,7 +251,7 @@ class GuildEmojiManager extends CachedManager { const { me } = this.guild.members; if (!me) throw new DiscordjsError(ErrorCodes.GuildUncachedMe); - if (!me.permissions.has(PermissionFlagsBits.ManageGuildExpressions)) { + if (!me.permissions.any(PermissionFlagsBits.CreateGuildExpressions | PermissionFlagsBits.ManageGuildExpressions)) { throw new DiscordjsError(ErrorCodes.MissingManageGuildExpressionsPermission, this.guild); } From 8f988e7b88f6ace01b10d3abdc295d33cf3a3995 Mon Sep 17 00:00:00 2001 From: Jiralite <33201955+Jiralite@users.noreply.github.com> Date: Wed, 19 Nov 2025 23:00:44 +0000 Subject: [PATCH 2/2] fix!: update error code BREAKING CHANGE: `MissingManageGuildExpressionsPermission` has become `MissingGuildExpressionsPermission`. --- packages/discord.js/src/errors/ErrorCodes.js | 4 ++-- packages/discord.js/src/errors/Messages.js | 4 ++-- packages/discord.js/src/managers/GuildEmojiManager.js | 2 +- packages/discord.js/typings/index.d.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/discord.js/src/errors/ErrorCodes.js b/packages/discord.js/src/errors/ErrorCodes.js index 6f2fc8db1b70..537ff3ac893a 100644 --- a/packages/discord.js/src/errors/ErrorCodes.js +++ b/packages/discord.js/src/errors/ErrorCodes.js @@ -83,7 +83,7 @@ * * @property {'EmojiType'} EmojiType * @property {'EmojiManaged'} EmojiManaged - * @property {'MissingManageGuildExpressionsPermission'} MissingManageGuildExpressionsPermission + * @property {'MissingGuildExpressionsPermission'} MissingGuildExpressionsPermission * * @property {'NotGuildSoundboardSound'} NotGuildSoundboardSound * @property {'NotGuildSticker'} NotGuildSticker @@ -217,7 +217,7 @@ const keys = [ 'EmojiType', 'EmojiManaged', - 'MissingManageGuildExpressionsPermission', + 'MissingGuildExpressionsPermission', 'NotGuildSoundboardSound', 'NotGuildSticker', diff --git a/packages/discord.js/src/errors/Messages.js b/packages/discord.js/src/errors/Messages.js index b9a54f99833d..29ee49c3b27c 100644 --- a/packages/discord.js/src/errors/Messages.js +++ b/packages/discord.js/src/errors/Messages.js @@ -88,8 +88,8 @@ const Messages = { [ErrorCodes.EmojiType]: 'Emoji must be a string or GuildEmoji/ReactionEmoji', [ErrorCodes.EmojiManaged]: 'Emoji is managed and has no Author.', - [ErrorCodes.MissingManageGuildExpressionsPermission]: guild => - `Client must have Manage Guild Expressions permission in guild ${guild} to see emoji authors.`, + [ErrorCodes.MissingGuildExpressionsPermission]: guild => + `Client must have Create Guild Expressions or Manage Guild Expressions permission in guild ${guild} to see emoji authors.`, [ErrorCodes.NotGuildSoundboardSound]: action => `Soundboard sound is a default (non-guild) soundboard sound and can't be ${action}.`, diff --git a/packages/discord.js/src/managers/GuildEmojiManager.js b/packages/discord.js/src/managers/GuildEmojiManager.js index bbbd2caa15bf..6327baf578da 100644 --- a/packages/discord.js/src/managers/GuildEmojiManager.js +++ b/packages/discord.js/src/managers/GuildEmojiManager.js @@ -252,7 +252,7 @@ class GuildEmojiManager extends CachedManager { const { me } = this.guild.members; if (!me) throw new DiscordjsError(ErrorCodes.GuildUncachedMe); if (!me.permissions.any(PermissionFlagsBits.CreateGuildExpressions | PermissionFlagsBits.ManageGuildExpressions)) { - throw new DiscordjsError(ErrorCodes.MissingManageGuildExpressionsPermission, this.guild); + throw new DiscordjsError(ErrorCodes.MissingGuildExpressionsPermission, this.guild); } const data = await this.client.rest.get(Routes.guildEmoji(this.guild.id, resolvedEmoji.id)); diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 0cba25f74951..8c7fe0d755bb 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -4051,7 +4051,7 @@ export enum DiscordjsErrorCodes { EmojiType = 'EmojiType', EmojiManaged = 'EmojiManaged', - MissingManageGuildExpressionsPermission = 'MissingManageGuildExpressionsPermission', + MissingGuildExpressionsPermission = 'MissingGuildExpressionsPermission', NotGuildSoundboardSound = 'NotGuildSoundboardSound', NotGuildSticker = 'NotGuildSticker',