不和谐Bot服务器静音

时间:2020-09-25 18:53:25

标签: node.js discord bots

我正在尝试编写一个不和谐的bot,当我执行“ .mute @person”时服务器使人们静音。

我的代码怎么了?

bot.on('message', msg=>{
   let person = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[1]))
   if(msg.content === ".mute"){
       person.setDeaf
   }
})

显示“消息未定义”

1 个答案:

答案 0 :(得分:0)

bot.on('message', msg => {...}等待事件message,然后将该信息作为变量msg传递给所提供函数。
在函数内部,您引用message.guild.member,但未定义message(您将事件信息传递为msg,而不是message)。将函数参数更改为message,如下所示:
bot.on('message', message => {...}

那可以解决您遇到的错误,但是我不确定该功能是否实际上会使用户静音。我认为您想要is

client.on('message', async message => {
    if (message.content.startsWith(".mute")) {
        let person = message.guild.member(message.mentions.users.first());
        await person.edit({mute: true});
    }
});

注意,我将message用作该函数的参数,但由于要使用异步函数,因此将async放在其前面。 .edit()采用数据字典,请参见linked documentation。等待它是因为它是异步完成的:您先调用它,然后等待服务器的响应再继续(以确保一切按预期进行)。

经过自我测试,就像魅力一样。