代码
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'
编辑:角色未定义
答案 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));