Discord js,TypeError:提供的参数既不是用户也不是角色

Posted

技术标签:

【中文标题】Discord js,TypeError:提供的参数既不是用户也不是角色【英文标题】:Discord js, TypeError: Supplied parameter was neither a User nor a Role 【发布时间】:2020-08-20 04:34:32 【问题描述】:

我正在尝试制作一个机器人,当输入命令时,它会更改该用户的频道权限。但是,在尝试覆盖权限时,我不断收到此类型错误。

TypeError: 提供的参数既不是用户也不是角色。

我不断收到错误,指向 message.member.id ,任何与此相关的问题都与角色而不是用户有关。


        const permissions = new Permissions([  
        'MANAGE_CHANNELS',
        'EMBED_LINKS',
        'ATTACH_FILES',
        'READ_MESSAGE_HISTORY',
        'MANAGE_ROLES',
        ]);

        const nextChannel = message.guild.channels.find(channel => channel.name === "b2");
        nextChannel.overwritePermissions([
            
                id: message.member.id,
                deny: permissions,
            ,
        ]);

【问题讨论】:

【参考方案1】:

这是下面的解决方案 - 假设您使用的是 v11

nextChannel.overwritePermissions(message.author.id
            
              SEND_MESSAGES: false
            ,
        );

我希望这可以帮助您继续。

【讨论】:

感谢您的帮助。但是,这也出现了同样的错误。 为之前的错误信息道歉。这应该可以解决您的问题。但是,我不知道new Permissions([]) 在这方面的效果如何。【参考方案2】:

如错误所述,您没有提供UserRole 您提供了GuildMember

您需要将message.member.id 替换为message.user.id

【讨论】:

谢谢,但是在尝试这个时,它给了我以下错误。 ```TypeError:无法读取未定义的属性“id” 你试过message.author吗?没有.id 您使用的是什么版本的 discord.js?你使用的是什么版本的节点?

以上是关于Discord js,TypeError:提供的参数既不是用户也不是角色的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法使用 discord.js 读取属性“”错误

TypeError:无法读取发送的属性(Discord.js)

TypeError:无法读取未定义的“获取”函数(discord.js)

TypeError:mention.send 不是函数 - discord.js

Discord.js:TypeError:无法读取未定义的属性“删除”

(Discord.js)TypeError:无法读取未定义的属性“添加”