From 0b122633717bfa9f3a0ffe71a33c32f7afc319df Mon Sep 17 00:00:00 2001 From: Jiralite <33201955+Jiralite@users.noreply.github.com> Date: Thu, 20 Nov 2025 23:15:58 +0000 Subject: [PATCH] fix(GuildEmojiManager)!: Allow `CreateGuildExpressions` for retrieving author data (#11283) * fix(GuildEmojiManager): allow `CreateGuildExpressions` * 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 | 4 ++-- packages/discord.js/typings/index.d.ts | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/discord.js/src/errors/ErrorCodes.js b/packages/discord.js/src/errors/ErrorCodes.js index 6f2fc8db1..537ff3ac8 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 b9a54f998..29ee49c3b 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 83ef0e490..6327baf57 100644 --- a/packages/discord.js/src/managers/GuildEmojiManager.js +++ b/packages/discord.js/src/managers/GuildEmojiManager.js @@ -251,8 +251,8 @@ class GuildEmojiManager extends CachedManager { const { me } = this.guild.members; if (!me) throw new DiscordjsError(ErrorCodes.GuildUncachedMe); - if (!me.permissions.has(PermissionFlagsBits.ManageGuildExpressions)) { - throw new DiscordjsError(ErrorCodes.MissingManageGuildExpressionsPermission, this.guild); + if (!me.permissions.any(PermissionFlagsBits.CreateGuildExpressions | PermissionFlagsBits.ManageGuildExpressions)) { + 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 0cba25f74..8c7fe0d75 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',