【发布时间】:2020-12-05 09:30:11
【问题描述】:
我想在计时器完成时收到通知,而不仅仅是“OFFSET”,有人可以帮助我吗?谢谢。
编辑:所以该脚本基本上是一个计时器,假设每隔一小时又一分钟在我的不和谐频道上给我一个通知。现在我只收到一个通知,目标距离 X 分钟。当实际计时器完成时(在下一个间隔之前),我想要另一个通知。
edit2:我不想创建另一个主题,所以任何人都可以帮我添加秒吗?现在是唯一的小时和分钟计时器,我想增加几秒钟。 所以改为:20:50 我想要:20:50:20
var Discord = require("discord.js");
var bot = new Discord.Client();
var NOTIFY_CHANNEL;
bot.on('ready', () => {
NOTIFY_CHANNEL = bot.channels.cache.get('xxx'); // Channel to send notification
});
const START_DATE = '2020-08-15'; // Date used as the starting point for multi-hour intervals, must be YYYY-MM-DD format
const START_HOUR = 19; // Hour of the day when the timer begins (0 is 12am, 23 is 11pm), used with START_DATE and INTERVAL_HOURS param
const INTERVAL_HOURS = 1; // Trigger at an interval of every X hours
const TARGET_MINUTE = 1; // Minute of the hour when the chest will refresh, 30 means 1:30, 2:30, etc.
const OFFSET = 5; // Notification will warn that the target is X minutes away
const NOTIFY_MINUTE = (TARGET_MINUTE < OFFSET ? 60 : 0) + TARGET_MINUTE - OFFSET;
console.log('Notification sent');
const START_TIME = new Date(new Date(START_DATE).getTime() + new Date().getTimezoneOffset() * 60000 + START_HOUR * 3600000).getTime();
setInterval(function () {
var d = new Date();
if (Math.floor((d.getTime() - START_TIME) / 3600000) % INTERVAL_HOURS > 0) return; // Return if hour is not the correct interval
if (d.getMinutes() !== NOTIFY_MINUTE) return; // Return if current minute is not the notify minute
NOTIFY_CHANNEL.send('in: ' + OFFSET + 'minutes');
}, 60 * 1000); // Check every minute
bot.login('xxx');
【问题讨论】:
-
请详细说明您的问题。奇怪的是,您的代码 cmets 比试图向我们准确解释您的具体问题是什么更详细。写一个适当详细的问题比仅仅部分模棱两可的句子和代码转储需要更多的努力
-
我在聊天中收到通知,计时器即将以“偏移”结束。但是定时器完成后我不能写通知。
-
用您的说明编辑问题并更详细地解释当前正在发生的事情以及它需要如何表现不同以及您已完成的任何故障排除
-
已编辑,抱歉..
-
好的,这样更好一点,更接近于解释这个问题。虽然不太清楚“计时器已完成”的构成是什么
标签: javascript node.js discord.js