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

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


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

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


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

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


这就是我试图扮演的角色:

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

最佳答案

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);

09-30 13:03