Discord.js:GuildMember的setMute命令不起作用?

时间:2019-04-18 22:46:14

标签: javascript discord.js

我目前正在尝试将静音功能编程到Discord机器人上。它启用了服务器权限“静音成员”。

这是每当我调用静音命令时都会运行的代码:

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 个答案:

答案 0 :(得分:3)

setMute()返回一个承诺。因此,在发送成员状态之前,您必须等待它完成。

await receiverG.setMute(true, remaining);

请记住,await仅可用于异步功能。如果承诺被拒绝(.catch()try...catch),请确保也捕获并处理错误。

关于setMute()的功能,它应该等同于右键单击语音通道中的成员并选择Server Mute