Заставь мой бот разногласий посылать сообщения в определенные часы - PullRequest
0 голосов
/ 17 февраля 2019

У меня проблема, которую я почти решил, но я застрял.

Я хочу, чтобы мой бот отправлял сообщение в канале в зеркальные часы (00:00, 01:00, 02:30 ...) дляработает с друзьями и в настоящее время я сделал это: в верхней части моего кода у меня есть var currentdate = new Date();

А потом, позже в моем исходном коде:

if(currentdate.getMinutes() == currentdate.getHours())
{
    bot.channels.get('SPECIFICCHANNELID').send('Touchez votre nez :nose:');
}

Это вроде работаетпоскольку сообщение отправляется ботом в нужном канале, но оно отправляется только тогда, когда бот обнаруживает сообщение, поэтому, если в течение какого-либо зеркального часа никто не отправит сообщение, бот ничего не отправит.

И если в течение этого интервала времени будет несколько сообщений, бот также отправит сообщение несколько раз, конечно, я хочу, чтобы оно отправляло сообщение только 1 раз для примера в 11: 11: 00.

Спасибо за помощь и извините, если мой английский плохой!

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Проблема решена благодаря модулю node-cron.

0 голосов
/ 17 февраля 2019

Вам необходимо через какой-то интервал проверять, отправлять или нет сообщение.

Будет работать что-то вроде setInterval.

setInterval(function(){
    if(currentdate.getMinutes() == currentdate.getHours())
    {
        bot.channels.get('SPECIFICCHANNELID').send('Touchez votre nez :nose:');
    }
}, MIN_INTERVAL)


Вы хотите, чтобы MIN_INTERVAL было минимальным количеством времени в миллисекундах для проверки отправки сообщений.

ЕслиВы хотите проверять каждую минуту

const MIN_INTERVAL = 1000 * 60

...