我目前正在尝试为服务器制作一个机器人,而我想做的一件事情就是让它在用户加入任何语音通道时检测到它,并使其简单地发送一条消息。我个人无法弄清楚它,也无法在互联网上找到任何答案,因为在大多数情况下,人们希望基于命令来检测它,而我却希望它是被动的。我知道voiceStateUpdate已经更改,有些事情与我过去看到的其他用法有所不同。
如果有人有任何解决方案,请告诉我,谢谢。
答案 0 :(得分:1)
在discord.js v.12中,您需要使用的监听器确实是voiceStateUpdate
。它具有参数oldState
和newState
。使用这些工具,您可以检测到许多东西,包括member
对象。
您可能会使用类似的方法来检测用户或漫游器是否正在连接或断开语音通道。
client.on('voiceStateUpdate', (oldState, newState) => {
// check for bot
if (oldState.member.user.bot) return;
// the rest of your code
})
答案 1 :(得分:1)
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);
});