Я новичок с JS, но я пытаюсь учиться на практике!Я скачал бесплатный проект GitHub (https://github.com/MrWall112/advanced-discord-bot-easy-install) и пытаюсь настроить таймер.
До сих пор я добавил событие setInterval
, чтобы каждые 30 секунд бот объявлял«30 секунд прошло!» 3 раза (обычно он будет работать в течение 30 с, 1 м, 1 м 30 с и 2 м, как для частного боевого сервера, чтобы синхронизировать отдельные раунды).
При использовании setInterval
,бот объявляет 30 секунд, оставшиеся 3 раза, даже если таймер истек (.timer 60s
, бот по-прежнему объявляет 30 секунд, оставшиеся ПОСЛЕ тайм-аута)
Мой вопрос: есть ли способ, которым я могу настроить /измените setInterval
так, чтобы бот мог объявить:
msg.channel.send(msg.author.toString() + ` 60 SECONDS REMAINING! `)
msg.channel.send(msg.author.toString() + ` 30 SECONDS REMAINING! `)
msg.channel.send(msg.author.toString() + ` 10 SECONDS REMAINING! `)
Таким образом, вместо объявления 30 секунд прохождения 3 раза, оставшееся время объявляется в определенные секунды?
Вот мой текущий код JS:
var ms = require('ms')
exports.run = (bot, msg, params) => {
let Timer = params[0];
if(!params[0]){
return msg.channel.send(":x: " + "| Please Enter a time period followed by \"s or m or h\"");
}
if(params[0] <= 0){
return msg.channel.send(":x: " + "| Please Enter a time period followed by \"s or m or h\"");
}
msg.channel.send(":white_check_mark: " + "| Timer Started for: " + `${ms(ms(Timer), {long: true})}`)
var i = 0;
var a = setInterval(function() {
if (i === 3) {
clearInterval(a);
}
else {
msg.channel.send(msg.author.toString() + ` 30 seconds passed! `)
i++;
}
}
, 30 * 1000);
setTimeout(function(){
msg.channel.send(msg.author.toString() + ` The Timer Has FINISHED!, it lasted: ${ms(ms(Timer), {long: true})}`)
}, ms(Timer));
};