首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在通道中检查Discord.js Bot的权限?

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

Stack Overflow用户
提问于 2021-03-24 23:34:53
回答 2查看 1.9K关注 0票数 2

在程序中,选择一个通道(由用户通过设置)来监视不和谐的机器人。我需要确保bot在设置通道之前具有监视该通道的权限。

以下代码不起作用:

代码语言:javascript
复制
// 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");

这也不起作用:

代码语言:javascript
复制
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),而不是返回。,我该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2021-03-25 21:44:06

我认为在discord.js中,您可以使用"permissionsIn“而不是”permissionsIn“。

代码语言:javascript
复制
if(!message.member.permissions.has("SEND_MESSAGES", "READ_MESSAGE_HISTORY")) {
    return message.channel.send("I have permissions");
} else {
    message.channel.send("I do not have permissions");
}
票数 0
EN

Stack Overflow用户

发布于 2021-06-29 09:04:08

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

代码语言:javascript
复制
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
};

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66790948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档