node.js - Discord.js voiceStateUpdate 未正确注册
问题描述
我从reddit复制了discord.js的这段代码,它应该检测用户是否加入或离开了频道,但它只发送离开通知,无论是否有人加入或离开频道。大约一年前,当我最后一次尝试相同的代码时,它运行良好,但现在不行了。
bot.on('voiceStateUpdate', (oldMember, newMember) => {
let newUserChannel = newMember.voiceChannel
let oldUserChannel = oldMember.voiceChannel
if(oldUserChannel === undefined && newUserChannel !== undefined) {
// User Joins a voice channel
console.log('join');
} else if(newUserChannel === undefined){
// User leaves a voice channel
console.log('leave');
}
})
discord.js 有变化还是我做错了什么?如果你想要整个代码,我也可以发送。
解决方案
由于您使用的是 Discord V12,voiceChannel
因此不再是 GuildMember 对象的属性。改为使用voice
属性。
guildMember.voice.channel;
有一个很好的指南,您可以在其中找到从V11升级时V12中发生的变化。
推荐阅读
- java - 如果第一个验证器失败,如何停止执行第二个验证器?
- splunk - splunk中的嵌套条件
- nfa - 这个 NFA 是否正确接受以 00 结尾的输入?
- apache-spark - 我们是否需要在所有节点中安装所有 HDP 的服务客户端?
- r - R中多个变量之间的显着差异
- powershell - powershell 找不到类型 [Windows.UI.Notification]
- powerbi - PowerBI工时计算无开始结束时间
- php - Archive.php 没有对单个类别的帖子进行排序
- javascript - 带有字体的 CSS 过渡
- laravel - 带有两个 foreach 循环的复选框选择