【发布时间】:2022-11-29 07:49:24
【问题描述】:
我想在执行命令之前检查我的机器人的权限。我之前让它工作得很好:
// Discord.js v13
if (interaction.guild.me.permissions.has(Permissions.FLAGS.MANAGE_MESSAGES)) {
interaction.reply("I can manage messages!");
}
但是,Guild.me 在 Discord.js v14 中不再可用,Official Guide 建议改为使用 GuildMemberManager.me
我尝试使用新对象:
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!");
}
但是,所有这些尝试都会返回相同的错误:
TypeError: Cannot read properties of undefined (reading 'me');
// Attempt #3
TypeError: Cannot read properties of undefined (reading 'permissionsIn');
我不明白新的 GuildMemberManager.me 对象是如何工作的。对我的问题的任何进一步解释或解决方案将不胜感激!
【问题讨论】:
标签: javascript node.js discord.js