我正在尝试编写一个不和谐的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
}
})
显示“消息未定义”
答案 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。等待它是因为它是异步完成的:您先调用它,然后等待服务器的响应再继续(以确保一切按预期进行)。
经过自我测试,就像魅力一样。