#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)