javascript - .addRole 和 .removeRole 问题

标签 javascript node.js discord.js

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

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

使用静音命令后获取 Angular 色(并给出 muterole):

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

在静音时间到期后返回 Angular 色(并获取 muterole):

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

这就是我尝试扮演的 Angular 色:

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

关于javascript - .addRole 和 .removeRole 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58147562/

相关文章:

javascript - 如何在 Node 中使用 x.509 证书验证 JWT token ?

node.js - 用户在云函数中订阅主题时出现 400 Bad Request 错误

javascript - 有没有命令可以向群组的所有成员发送私有(private)消息?

javascript - 机器人命令未按预期工作

javascript - 制作点击播放视频的 YouTube 视频标题卡

javascript - 使用 NodeJS 进行 SNS 推送通知

javascript - 从 .js 文件访问全局变量

node.js - node-redis client.auth 回调是否替代了 ready 事件?

javascript - 将 Node JS 与 LDAP 连接

javascript - Discord bot 错误 - SequelizeDatabaseError : SQLITE_ERROR: no such table: users