ukrainemf
@ukrainemf

Как узнать сколько осталось времени setTimeout js?

Я сделал команду /daily, которая даёт 50 Coins на аккаунт, но не чаще чем 1 раз в 24 часа. Как мне вместо "Подождите ещё ...." сделать так, чтобы оно выводило, когда можно будет ввести команду ещё раз, например "Подождите xx часа и yy минут".
module.exports.run = async (bot, message, args) => {
    const profile = require('../profile.json');
    if(profile[message.author.id].daily == 1) return message.channel.send('Подождите ещё ....')
    const bonus = 50;
    profile[message.author.id].coins = profile[message.author.id].coins + bonus;
    await message.reply(` вы получили бонус ${bonus} Coins!`);
    profile[message.author.id].daily = 1;
    setTimeout(() => {
        profile[message.author.id].daily = 0;
    }, 60 * 60000 * 24 );
};
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
ukrainemf
@ukrainemf Автор вопроса
Благодаря комментариям сделал вот так.
const profile = require('../profile.json');
    const x = Date.now();
    const y = Date.now() + 24 * 60 * 60000
    const bonus = 50;
    if(x <= profile[message.author.id].daily) return message.reply(` Вы ещё не можете активировать бонус $({profile[message.author.id].daily - x)} сек!`)
    else profile[message.author.id].coins += bonus
    profile[message.author.id].daily = y;
    message.reply(` на Ваш аккаунт зачислено ${bonus} Coins! Текущий баланс ${profile[message.author.id].coins}`)
};
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы