TypeError: Cannot read property 'interval' of undefined

У меня есть бот дискорд, который выдаёт 200 монет за каждую минуту, проведённую в войс канале (только с включенным микро) монеты хранятся в coins.json, но бот крашается когда кто-то выходит из войс канала после запуска бота, то если человек сидел в войс канале когда бот был оффлайн, потом я запускаю бота, и человек выходит из канала (замученный или нет без разницы) бот крашается

let voiceStates = {}

bot.on('voiceStateUpdate', (oldState, newState) => {
let coins = require("./coins.json");

  let { id } = oldState;

  if (!oldState.channel) {
    console.log('user joined voice channel');

    voiceStates[id] = { joined: new Date() };

    if(!newState.selfMute) {
      voiceStates[id].interval = bot.setInterval(() => {
        coinAmt = 200;
        console.log('user earned 200 coins');
        if(coinAmt){
          coins[newState.id] = {
            coins: coins[newState.id].coins + coinAmt
          }
         }

      }, 60000);
    }

  } else if (!newState.channel || newState.selfMute) {
    console.log('left channel')

    if (voiceStates[id].interval) {
      bot.clearInterval(voiceStates[id].interval);
      voiceStates[id].interval = 60000;
    }

  } else if (!oldState.channel || newState.selfMute) {
    console.log('left channel')

    if (voiceStates[id].interval) {
      bot.clearInterval(voiceStates[id].interval);
      voiceStates[id].interval = 60000;
    }

  } else if (!oldState.channel || !newState.selfMute) {
    console.log('left channel')

    voiceStates[id] = { joined: new Date() };

    if(!newState.selfMute) {
      voiceStates[id].interval = bot.setInterval(() => {
        coinAmt = 60000;
        console.log('user earned 200 coins');
        if(coinAmt){
          coins[newState.id] = {
            coins: coins[newState.id].coins + coinAmt
          }
         }

      }, 60000);
    }

  }

});

введите сюда описание изображения


Ответы (0 шт):