首页 > 解决方案 > 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 有变化还是我做错了什么?如果你想要整个代码,我也可以发送。

标签: node.jsdiscorddiscord.js

解决方案


由于您使用的是 Discord V12,voiceChannel因此不再是 GuildMember 对象的属性。改为使用voice属性。

guildMember.voice.channel;

有一个很好的指南,您可以在其中找到从V11升级时V12中发生的变化。


推荐阅读