.addRole和.removeRole的问题

时间:2019-09-28 15:04:09

标签: javascript node.js discord.js

我正在尝试创建一个静音命令,该命令将删除所有角色并添加静音角色,在静音时间过后,它应该返回所有角色并担任静音角色。当我尝试担任(或返回)所有角色时,它会写在下面:

(node:3720) UnhandledPromiseRejectionWarning: TypeError: Supplied parameter was neither a Role nor a Snowflake.

在使用静音命令后,它将扮演角色(并给出一个静音角色):

rmember.addRole(muterole.id) && rmember.removeRole(takenroles);

并且在静音时间到期后返回角色(并获取一个静音角色):

rmember.removeRole(muterole.id) && rmember.addRole(takenroles) ;

这就是我要扮演的角色:

let rmember = message.mentions.members.first()
let takenroles = rmember.roles

1 个答案:

答案 0 :(得分:1)

GuildMember.addRole()GuildMember.removeRole()仅在每次通话中添加/删除 Role。要一次删除多个,请使用GuildMember.addRoles()GuildMember.removeRoles()

Promise.all([
  rmember.addRole(muterole),
  rmember.removeRoles(takenroles)
])
  .then(() => console.log('Muted.'))
  .catch(console.error);

相反...

Promise.all([
  rmember.removeRole(muterole),
  rmember.addRoles(takenroles)
])
  .then(() => console.log('Unmuted.'))
  .catch(console.error);