когда бота нет в канале, бот автоматически присоединяется к определенному каналу. discord js

#discord.js

#discord.js

Вопрос:

я сделал этот код для своего музыкального бота, но не знаю, как бот может проверить, когда бот не в голосовом канале, бот автоматически подключится к определенному каналу, например id. но когда бот использует другой голосовой канал, бот не возвращается к определенному голосовому каналу, который я создал. idk, как закодировать интервал, цикл или проверить, говорит бот голосом или нет.

 client.on("ready", () => {
  console.log(`Hello ${client.user.username} is now online!`);

  let channel = client.channels.cache.get("720137811587629119");
  if (!channel) return console.error("The channel does not exist!");
  setInterval(function() {

  channel.join()
  .then(connection => console.log('Connected'))
  .catch(console.error);
}, 30000)

  let botStatus = [
    `${client.guilds.cache.size} servers!`,
    "s,help or s,h",
    `Over ${client.users.cache.size} users!`,
    `Over ${client.channels.cache.size} channels!`
  ]
  
  setInterval(function() {
    let status = botStatus[Math.floor(Math.random() * botStatus.length)];
    client.user.setActivity(status, {type: "PLAYING"});
  
    }, 5000)
  });
  

Ответ №1:

Вы можете использовать voiceStateUpdate событие на клиенте, чтобы определить, когда ваш бот отключился от голосового канала. Вот пример:

 client.on("voiceStateUpdate", (oldState, newState) => {
  if (newState.id !== client.user.id) return; // do nothing if it's not your bot
  if (oldState.channel.id === "720137811587629119" amp;amp; !newState.channel) { // check if the bot was disconnected from 720137811587629119
    newState.setChannel("720137811587629119");
  }
}
  

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

1. куда я вставил код? заменить channel.join() ? мне нужно, чтобы бот всегда присоединялся к этому каналу, когда бот не используется