Discord 如何检测用户何时加入语音频道?

Discord 如何检测用户何时加入语音频道?,discord,discord.js,Discord,Discord.js,我目前正在尝试为我的服务器制作一个bot,我想做的一件事是让它在用户加入任何语音频道时进行检测,并简单地让它发送消息。我个人无法弄明白,也无法在互联网上找到任何答案,因为大多数时候人们都是通过命令来检测的,而我希望它是被动的。我知道voiceStateUpdate已经改变了,有些事情与我过去看到的其他人使用它的方式不同 如果有人有任何解决方案,请告诉我,谢谢。在discord.js v.12中,您需要使用的侦听器确实是。它具有参数和参数。有了这些,您可以检测很多东西,包括成员对象 使用该选项,您

我目前正在尝试为我的服务器制作一个bot,我想做的一件事是让它在用户加入任何语音频道时进行检测,并简单地让它发送消息。我个人无法弄明白,也无法在互联网上找到任何答案,因为大多数时候人们都是通过命令来检测的,而我希望它是被动的。我知道voiceStateUpdate已经改变了,有些事情与我过去看到的其他人使用它的方式不同


如果有人有任何解决方案,请告诉我,谢谢。

在discord.js v.12中,您需要使用的侦听器确实是。它具有参数和参数。有了这些,您可以检测很多东西,包括
成员
对象

使用该选项,您可以使用类似的方法来检测用户或机器人是否正在连接或断开语音通道

client.on('voiceStateUpdate', (oldState, newState) => {
    // check for bot
    if (oldState.member.user.bot) return;

    // the rest of your code
})

非常感谢,出于某种原因,我把它复杂化了,哈哈。首先查看文档总是一个好主意:)这并没有说明如何判断它们是断开还是连接的,只是其中一个。文档中没有说明,因为这通常很糟糕。@stackers看看是否能帮到你
client.on('voiceStateUpdate', (oldState, newState) => {
    if (newState.channelID === null) console.log('user left channel', oldState.channelID);
    else if (oldState.channelID === null) console.log('user joined channel', newState.channelID);
    else console.log('user moved channels', oldState.channelID, newState.channelID);
});