我有一个问题几乎可以解决,但是我现在被卡住了。
我想让我的机器人在镜像时间(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次该消息。
谢谢您的帮助,对不起,如果我的英语不好!
答案 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)