gpt4 book ai didi

javascript - 如何让机器人通过 ID 或权限来识别您的身份

转载 作者:行者123 更新时间:2023-12-02 23:21:45 26 4
gpt4 key购买 nike

我遇到了一个问题,我的机器人只能通过许可进行识别,我什至确保我的 ID 位于 !message.author.id == 所在的位置。我从 !message.author.id 中删除了 !,我的机器人仍然依赖于该权限

我试过了 - 删除!来自 !message.author.id - 在返回消息后添加else - 寻找类似问题 - 并搜索了 Discord.JS 文档。

if(!message.author.id ==`329023088517971969` || !message.member.hasPermission(['MANAGE_GUILD'])) return message.channel.send(`You don't have the permissions to do this!`)
<code here>

我希望输出是,如果机器人发现我的 ID(作者)与后面的值相同,它会让我通过,或者如果两个语句都为真,它会让我通过,或者如果 hasPermission是真的,它会让我通过。实际结果是它只依赖hasPermission而忽略作者ID。

基本上机器人应该:如果作者的 ID 等于代码中显示的 ID,则在 if() 之后运行代码,或者成员具有以下权限

最佳答案

当使用所有否定条件时,您应该使用 logical AND运算符 (&&),而不是 logical OR运算符(||)。

if (message.author.id !== '329023088517971969' && !message.member.hasPermission('MANAGE_GUILD')) {
return message.channel.send(':x: Insufficient permission.')
.catch(console.error);
}

在英语中,这段代码基本上是说“如果这不是作者的 ID 并且他们没有权限标志,请停止。”从逻辑上讲,它比“如果这不是作者的 ID 他们没有权限标志”更有意义,因为如果一个为 true,另一个为 false,它就会阻止您。

考虑这个例子:

const str = 'abcd';
const arr = ['foo'];

if (str !== 'abcd' || !arr.includes('bar')) console.log('This is WRONG.');
// false OR true OUTPUTS true

if (str !== 'abcd' && !arr.includes('bar')) console.log('This is correct (you won\'t see this).');
// false AND true OUTPUTS false

关于javascript - 如何让机器人通过 ID 或权限来识别您的身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56921064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com