如何在频道中检查 Discord.js Bot 的权限?

时间:2021-03-24 23:34:53

标签: node.js permissions discord discord.js

在程序中,选择了一个频道(由用户通过设置)供不和谐机器人进行监控。在设置频道之前,我需要确保机器人有权监控该频道。

以下代码不起作用:

// Make sure bot has read permissions by checking if it's missing any
if (message.guild.me.permissionsIn(channel).missing(['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'])) {
    return message.channel.send("I don't have permission in that channel.");
}
// If it isn't missing any then do stuff
console.log("do stuff");

这也不起作用:

if (!message.guild.me.permissionsIn(channel).has(['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'])) {
    return message.channel.send("I don't have permission in that channel.");
}

console.log("do stuff");

输出总是“做事”(if 语句返回一个 channelID),而不是返回。 我该怎么做?

2 个答案:

答案 0 :(得分:0)

我认为在 discord.js 中,您可以使用“permissions”代替“permissionsIn”。

xcrun bitcode_strip -r BBMetalImage -o BBMetalImage

答案 1 :(得分:0)

如果您使用的是 v12.5 Discord.js 这应该可以:

if (!message.channel.permissionsFor(client.user.id).has(['SEND_MESSAGES', 'READ_MESSAGE_HISTORY', 'EMBED_LINKS', 'VIEW_CHANNEL'])) {
  message.author.send("Heck, It looks like I may lack perms. Please make sure that I have all of the following permissions: `SEND_MESSAGES`, `READ_MESSAGE_HISTORY`, `EMBED_LINKS` and `VIEW_CHANNEL`.")
  return
};

相关问题