Discord.js:GuildMember 的 setMute 命令不起作用?
Posted
技术标签:
【中文标题】Discord.js:GuildMember 的 setMute 命令不起作用?【英文标题】:Discord.js: GuildMember's setMute command not working? 【发布时间】:2019-09-09 07:06:26 【问题描述】:我目前正在尝试将静音功能编程到不和谐机器人上。它启用了服务器权限“静音成员”。
这是每当我调用静音命令时运行的代码:
if(!receiverG.mute)
message.channel.send(`$receiver muted by $sender.`)
receiverG.setMute(true, remaining);
else
message.channel.send(`$receiver unmuted by $sender.`)
receiverG.setMute(false, remaining);
message.channel.send(receiverG.mute);
因此,此代码的连续调用应该切换静音,但 message.channel.send.(receiverG.mute) 每次都发送“false”,表示该成员从未静音。我不清楚静音功能如何与不和谐一起使用。我在某处读到它是基于角色的——如果是这样,那么 setMute() 命令的意义何在?
文档:https://discord.js.org/#/docs/main/stable/class/GuildMember?scrollTo=setMute
【问题讨论】:
【参考方案1】:setMute()
返回一个承诺。因此,您必须等待它完成后才能发送成员的状态。
await receiverG.setMute(true, remaining);
请记住,await
只能用于异步函数。如果 promise 被拒绝(.catch()
或 try...catch
),请务必捕获并处理错误。
至于setMute()
的功能,应该相当于在语音频道右击成员,选择Server Mute
。
【讨论】:
以上是关于Discord.js:GuildMember 的 setMute 命令不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
试图获取 guildMember.presence.status 的 discord.js 导致“无法读取未定义的属性(读取 'status')”
使用用户 ID Discord.js v13 获取 GuildMember 对象