让我的不和谐机器人在特定时间发送消息

时间:2019-02-17 17:39:35

标签: javascript discord discord.js

我有一个问题几乎可以解决,但是我现在被卡住了。

我想让我的机器人在镜像时间(00h00、01h01、02h02 ...)在某个频道中发送一条消息,以与朋友进行插科打and,目前我做到了: 在代码的顶部,我有var currentdate = new Date();

然后,稍后在我的源代码中:

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

这是可行的,因为消息是由机器人在正确的通道中发送的,但是仅在机器人检测到消息时才发送消息,因此,如果在任何镜像时间内,没有人发送消息,则机器人将什么都不发。

如果在此时间间隔内有多条消息,则该机器人还会多次发送该消息,当然,我希望它在11:11:00仅发送1次该消息。

谢谢您的帮助,对不起,如果我的英语不好!

3 个答案:

答案 0 :(得分:2)

您需要每隔一段时间检查是否发送消息。

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

答案 1 :(得分:0)

得益于node-cron模块,问题得以解决。

答案 2 :(得分:0)

您必须使用 if 语句并且您没有指定小时或分钟,因此机器人无法发送消息。

coherence2 = mlab.cohere(mean_zero_left, mean_zero_rigth, window=np.hamming(L), NFFT=nfft, noverlap=int(L//2), Fs=self._fa)