Files
bettergi-scripts-list/archive/js/等待到指定时间(默认凌晨4点)/main.js
2025-05-10 04:32:37 +08:00

69 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(async function () {
const defaultHours = 4;
const defaultMinutes = 0;
function validateAndSetDefaults(specifyHours, specifyMinutes) {
if (isNaN(specifyHours) || specifyHours > 23 || specifyHours == '') {
if (specifyHours > 23) {
log.warn("设置指定时间错误,请使用 0~23 时将使用默认值4时");
}
else {
log.warn("你没有设置指定时将使用默认值4时");
}
specifyHours = defaultHours;
}
if (isNaN(specifyMinutes) || specifyMinutes > 59 || specifyMinutes == '') {
if (specifyMinutes > 59) {
log.warn("设置指定时间错误,请使用 0~59 分将使用默认值0分");
} else {
log.warn("你没有设置指定分钟将使用默认值0分");
}
specifyMinutes = defaultMinutes;
}
log.info(`---------------将等待至 ${specifyHours}${specifyMinutes} ---------------`)
return { specifyHours, specifyMinutes };
}
// 計算相差時間微秒
function getTimeUntilNextTime(validatedHours, validatedMinutes) {
const now = new Date();
const nextTime = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate(),
validatedHours, validatedMinutes, 0, 0
);
// 如果現在時間已經過了今天的 4 點,則計算明天的 4 點
if (now >= nextTime) {
nextTime.setDate(nextTime.getDate() + 1);
}
return nextTime - now;
}
setGameMetrics(1920, 1080, 2);
// 启用自动拾取的实时任务
dispatcher.addTimer(new RealtimeTimer("AutoPick"));
// 启用自动剧情的实时任务
dispatcher.addTimer(new RealtimeTimer("AutoSkip"));
// 讀取參數
let specifyHours = Number(settings.specifyHours);
let specifyMinutes = Number(settings.specifyMinutes);
const { specifyHours: validatedHours, specifyMinutes: validatedMinutes } = validateAndSetDefaults(specifyHours, specifyMinutes);
// 計算相差時間微秒
const timeUntilNextTime = getTimeUntilNextTime(validatedHours, validatedMinutes);
log.info(`等待 ${Math.floor((timeUntilNextTime / 60000 / 60))} 小时 ${(timeUntilNextTime / 60000 % 60).toFixed(0)} 分 ,直到下一个 ${validatedHours} : ${validatedMinutes}`);
// 多等待10秒
await sleep(timeUntilNextTime + 10000);
log.info(`时间到了!现在是 ${specifyHours}${specifyMinutes}`);
//1秒 = 1000 毫秒
//10秒 = 10000 毫秒
//1分鐘 = 60000 毫秒
})();