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 对象

为啥我的欢迎信息不起作用(discord.js)

如何在 discord.js 中通过 id 查找用户

我正在尝试让不和谐的机器人根据某人加入服务器后的时间赋予角色

我将如何使用两个不同版本的 discord.js | Discord.js 机器人