diff --git a/packages/discord.js/src/structures/Message.js b/packages/discord.js/src/structures/Message.js index fd49f1d72..0879b5231 100644 --- a/packages/discord.js/src/structures/Message.js +++ b/packages/discord.js/src/structures/Message.js @@ -799,12 +799,15 @@ 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 || channel.isVoiceBased() || !channel.viewable) return false; + + const permissions = channel.permissionsFor(this.client.user); + if (!permissions) return false; + + return permissions.has(PermissionFlagsBits.ReadMessageHistory | PermissionFlagsBits.PinMessages); } /**