Discord.js Обновление состояния голоса не регистрируется должным образом

#node.js #discord #discord.js

#node.js #Discord #discord.js

Вопрос:

У меня есть этот фрагмент кода для discord.js скопировано из reddit, который должен определять, присоединился ли пользователь к каналу или покинул его, но отправляет уведомления об уходе только независимо от того, присоединяется ли кто-то к каналу или покидает его. Около года назад, когда я в последний раз пробовал этот же код, он работал хорошо, но сейчас это не так.

 bot.on('voiceStateUpdate', (oldMember, newMember) => {
  let newUserChannel = newMember.voiceChannel
  let oldUserChannel = oldMember.voiceChannel

  if(oldUserChannel === undefined amp;amp; newUserChannel !== undefined) {
     // User Joins a voice channel
    console.log('join');

  } else if(newUserChannel === undefined){
    // User leaves a voice channel
    console.log('leave');

  }
})
  

Имеет discord.js изменено или что я делаю не так? Если вам нужен весь код, я могу отправить его также.

Комментарии:

1. Has discord.js changed > Какую версию вы используете прямо сейчас?

2. @Переменная Discord.js версия 12.3.1

Ответ №1:

Поскольку вы используете Discord V12, voiceChannel больше не является свойством объекта GuildMember. Вместо этого используйте voice свойство.

 guildMember.voice.channel;
  

Есть хорошее руководство, где вы можете найти, что изменилось в версии 12 при обновлении с версии 11.

Комментарии:

1. Это, вероятно, объясняет это, я попробую. Я все еще новичок в discord.js или программирование в целом, но я попытаюсь разобраться.

2. Нет проблем @MiQ. Если у вас возникнут какие-либо проблемы, просто оставьте комментарий, и я постараюсь ответить, как только смогу.

3. Я изменил oldMember, newMember на oldState, newState и изменил voiceChannel на voice.channel , и как последнее, что я изменил undefined на null , и теперь это работает отлично! Спасибо!