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 );
};
  • Вопрос задан
  • 86 просмотров
Решения вопроса 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}`)
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Sportrecs Москва
от 150 000 до 200 000 ₽
01 дек. 2020, в 23:18
80000 руб./за проект
01 дек. 2020, в 22:41
60000 руб./за проект
01 дек. 2020, в 21:24
500 руб./за проект