From ee988e3e75d39e91a98a572e72a5981e0ef87dbc Mon Sep 17 00:00:00 2001 From: Danial Raza Date: Fri, 24 Oct 2025 17:05:12 +0200 Subject: [PATCH] fix(Message): update `pinnable` to check for migrated guilds (#11189) * fix(Message): update `pinnable` to check for migrated guilds * refactor: requested changes * refactor: no checkAdmin and clean up the mess --- packages/discord.js/src/structures/Message.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/discord.js/src/structures/Message.js b/packages/discord.js/src/structures/Message.js index 71ac76895..9e17af670 100644 --- a/packages/discord.js/src/structures/Message.js +++ b/packages/discord.js/src/structures/Message.js @@ -781,11 +781,17 @@ class Message extends Base { */ get pinnable() { const { channel } = this; - return Boolean( - !this.system && - (!this.guild || - (channel?.viewable && - channel?.permissionsFor(this.client.user)?.has(PermissionFlagsBits.ManageMessages, false))), + + if (this.system) return false; + if (!this.guild) return true; + if (!channel?.viewable) return false; + + const permissions = channel?.permissionsFor(this.client.user); + if (!permissions) return false; + + return ( + permissions.has([PermissionFlagsBits.ReadMessageHistory, PermissionFlagsBits.PinMessages]) || + permissions.has([PermissionFlagsBits.ReadMessageHistory, PermissionFlagsBits.ManageMessages]) ); }