I want to check my bot's permissions before it executes a command. I had it working perfectly before:
// Discord.js v13 if (interaction.guild.me.permissions.has(Permissions.FLAGS.MANAGE_MESSAGES)) { interaction.reply("I can manage messages!"); } However Guild.me is no longer available in Discord.js v14 and the Official Guide suggests instead to use GuildMemberManager.me
I tried to use the new object:
const { GuildMemberManager, PermissionsBitField } = require('discord.js'); // Attempt #1 if (GuildMemberManager.me.permissions.has(PermissionsBitField.Flags.ManageMessages)) { interaction.reply("I can manage messages!"); } // Attempt #2 if (interaction.guild.GuildMemberManager.me.permissions.has(PermissionsBitField.Flags.ManageMessages)) { interaction.reply("I can manage messages!"); } // Attempt #3 if (GuildMemberManager.me.permissionsIn(channel).has(PermissionsBitField.Flags.ManageMessages)) { interaction.reply("I can manage messages!"); } However, all these attempts return the same error:
TypeError: Cannot read properties of undefined (reading 'me'); // Attempt #3 TypeError: Cannot read properties of undefined (reading 'permissionsIn'); I do not understand how the new GuildMemberManager.me object works. Any further explanation or solution to my problem will be greatly appreciated!