尝试通过角色名称 [discord.js] 获取角色对象时,我不断收到错误消息

时间:2021-06-06 05:33:05

标签: node.js discord.js

代码

let role = message.guild.roles.cache.find(role => role.name === args[1]);                
const member = message.mentions.members.first(); 
member.roles.remove(role).catch((e) => console.log(e));

这里的 args[1] 是角色的名称。 此代码以前可以使用,但现在显示此错误。

错误:

   TypeError [INVALID_TYPE]: Supplied roles is not an Array or Collection of Roles or Snowflakes.
        at GuildMemberRoleManager.remove
 [Symbol(code)]: 'INVALID_TYPE'

编辑:角色未定义

1 个答案:

答案 0 :(得分:1)

在使用 .remove(roleOrRoles, [reason)]GuildMemberRoleManager 方法时,您需要确保按照您所遇到的错误中的说明传递角色数组、雪花集合或雪花。因此,正确的解决方案是:

let role = message.guild.roles.cache.find(role => role.name === args[1]);                
const member = message.mentions.members.first(); 
member.roles.remove(role.id).catch((e) => console.log(e));