заставьте бота discord остаться на x раз в канале, а затем уйти, но продолжайте действовать

#javascript #discord #discord.js

Вопрос:

итак, у меня есть музыкальный бот, и я пытаюсь заставить его уйти через x раз, но нет, если включен режим 24/7 после окончания очереди, эта часть работает, проблема в том, что, когда я запускаю новое воспроизведение звука, бот все равно уходит через x раз

  .on ("queueEnd", (player) => setTimeout(() => {

        // Don't leave if 24/7 mode is active
        let QueueEmbed = new MessageEmbed()
        .setAuthor("The queue has ended", this.botconfig.IconURL)
        .setColor(this.botconfig.EmbedColor)
        .setTimestamp();

          client.channels.cache.get(player.textChannel).send( { embeds: [ QueueEmbed ] } );
  
        
          if (!this.config["24/7"]) player.destroy();
      }, 30000)); 
 

так что, если значение 24/7 равно false, оно остается в течение x раз, но я думаю, что оно мне нужно, чтобы отменить уничтожение, если звук начнет воспроизводиться снова, но не могу понять, как это сделать

Ответ №1:

Вы можете запретить выполнение кода a setTimeout() , сохранив выходные setTimeout() данные функции в переменной, и всякий раз, когда вы хотите отменить тайм-аут, просто вызовите clearTimeout() вот так:

 //Storing your timeout
const timeout = setTimeout(() => { 
    console.log("Hello, World!") 
}, 3000)

//Call this to clear
clearTimeout(timeout)