diff --git a/repo/js/AutoPickLitter/README.md b/repo/js/AutoPickLitter/README.md index 67006d507..6052a1990 100644 --- a/repo/js/AutoPickLitter/README.md +++ b/repo/js/AutoPickLitter/README.md @@ -29,9 +29,7 @@ ## 更新 -### 版本:2.1.3 -记录各子任务运行时间,避免出现重复运行 -增加界面调整,应对某些环境,导致点击失败 -去除实时任务 +### 版本:2.1.4 +更改为4点刷新,避免一些特殊情况 注意此次更新会覆盖本地默认账户文件 \ No newline at end of file diff --git a/repo/js/AutoPickLitter/main.js b/repo/js/AutoPickLitter/main.js index 40afcedf6..cee6d5aa7 100644 --- a/repo/js/AutoPickLitter/main.js +++ b/repo/js/AutoPickLitter/main.js @@ -492,9 +492,8 @@ async function recordForFile(judge) { /* ---------- 判断取水时间 ---------- */ if (settings.water) { - const now = Date.now(); // 当前毫秒时间戳 - const aimWaterTime = new Date(record.lastWaterTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可取水时间 ---------- */ + const now = Date.now(); + const aimWaterTime = getNextRefreshTime(record.lastWaterTime); if (aimWaterTime - now > 0) { log.info(`取水时间还未到!!!`); recordsTime.waterTime = false; @@ -506,9 +505,8 @@ async function recordForFile(judge) { /* ---------- 判断上香时间 ---------- */ if (settings.sticks) { - const now = Date.now(); // 当前毫秒时间戳 - const aimSticksTime = new Date(record.lastSticksTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可上香时间 ---------- */ + const now = Date.now(); + const aimSticksTime = getNextRefreshTime(record.lastSticksTime); if (aimSticksTime - now > 0) { log.info(`上香时间还未到!!!`); recordsTime.sticksTime = false; @@ -520,9 +518,8 @@ async function recordForFile(judge) { /* ---------- 判断抽签时间 ---------- */ if (settings.lots) { - const now = Date.now(); // 当前毫秒时间戳 - const aimLotsTime = new Date(record.lastLotsTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可抽签时间 ---------- */ + const now = Date.now(); + const aimLotsTime = getNextRefreshTime(record.lastLotsTime); if (aimLotsTime - now > 0) { log.info(`抽签时间还未到!!!`); recordsTime.lotsTime = false; @@ -534,9 +531,8 @@ async function recordForFile(judge) { /* ---------- 判断拾螺时间 ---------- */ if (settings.conchs) { - const now = Date.now(); // 当前毫秒时间戳 - const aimConchsTime = new Date(record.lastConchsTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可拾螺时间 ---------- */ + const now = Date.now(); + const aimConchsTime = getNextRefreshTime(record.lastConchsTime); if (aimConchsTime - now > 0) { log.info(`拾螺时间还未到!!!`); recordsTime.conchsTime = false; @@ -548,9 +544,8 @@ async function recordForFile(judge) { /* ---------- 判断探监时间 ---------- */ if (settings.meal) { - const now = Date.now(); // 当前毫秒时间戳 - const aimMealTime = new Date(record.lastMealTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可探监时间 ---------- */ + const now = Date.now(); + const aimMealTime = getNextRefreshTime(record.lastMealTime); if (aimMealTime - now > 0) { log.info(`探监时间还未到!!!`); recordsTime.mealTime = false; @@ -562,9 +557,8 @@ async function recordForFile(judge) { /* ---------- 判断拾蛋时间 ---------- */ if (settings.eggs) { - const now = Date.now(); // 当前毫秒时间戳 - const aimEggsTime = new Date(record.lastEggsTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可拾蛋时间 ---------- */ + const now = Date.now(); + const aimEggsTime = getNextRefreshTime(record.lastEggsTime); if (aimEggsTime - now > 0) { log.info(`拾蛋时间还未到!!!`); recordsTime.eggsTime = false; @@ -576,9 +570,8 @@ async function recordForFile(judge) { /* ---------- 判断转盘时间 ---------- */ if (settings.turntable) { - const now = Date.now(); // 当前毫秒时间戳 - const aimTurntableTime = new Date(record.lastTurntableTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可转盘时间 ---------- */ + const now = Date.now(); + const aimTurntableTime = getNextRefreshTime(record.lastTurntableTime); if (aimTurntableTime - now > 0) { log.info(`转盘时间还未到!!!`); recordsTime.turntableTime = false; @@ -590,9 +583,8 @@ async function recordForFile(judge) { /* ---------- 判断领菜时间 ---------- */ if (settings.todayLuck) { - const now = Date.now(); // 当前毫秒时间戳 - const aimTodayLuckTime = new Date(record.lastTodayLuckTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可领菜时间 ---------- */ + const now = Date.now(); + const aimTodayLuckTime = getNextRefreshTime(record.lastTodayLuckTime); if (aimTodayLuckTime - now > 0) { log.info(`领菜时间还未到!!!`); recordsTime.todayLuckTime = false; @@ -604,9 +596,8 @@ async function recordForFile(judge) { /* ---------- 判断领糖时间 ---------- */ if (settings.sweetStatue) { - const now = Date.now(); // 当前毫秒时间戳 - const aimSweetStatueTime = new Date(record.lastSweetStatueTime.getTime() + 24 * 60 * 60 * 1000).getTime(); - /* ---------- 计算下次可领糖时间 ---------- */ + const now = Date.now(); + const aimSweetStatueTime = getNextRefreshTime(record.lastSweetStatueTime); if (aimSweetStatueTime - now > 0) { log.info(`领糖时间还未到!!!`); recordsTime.sweetStatueTime = false; @@ -643,6 +634,24 @@ async function recordForFile(judge) { }; }; +/* ---------- 工具函数:计算【下次4点刷新时间】 ---------- */ +async function getNextRefreshTime(lastTime) { + const now = new Date(); + // 取“最近一次已过去的 04:00”作为当前刷新周期的起点 + const lastBoundary = new Date(now); + lastBoundary.setHours(4, 0, 0, 0); + if (now.getTime() < lastBoundary.getTime()) { + lastBoundary.setDate(lastBoundary.getDate() - 1); + }; + const ONE_DAY = 24 * 60 * 60 * 1000; + // lastTime 在当前周期之前 → 当前周期起点即可刷新(立即可执行) + // lastTime 已在当前周期内 → 下次刷新为当前周期起点 + 24h + return lastTime.getTime() < lastBoundary.getTime() + ? lastBoundary.getTime() + : lastBoundary.getTime() + ONE_DAY; + +}; + // 检查背包龙蛋数目 async function chcekDragonEggs() { await genshin.returnMainUi(); @@ -1661,4 +1670,4 @@ async function numberTemplateMatch( await fakeLog("AutoPickLitter脚本", true, false, 2333); -})(); \ No newline at end of file +})(); diff --git a/repo/js/AutoPickLitter/manifest.json b/repo/js/AutoPickLitter/manifest.json index a4f1ec073..a2a2edccc 100644 --- a/repo/js/AutoPickLitter/manifest.json +++ b/repo/js/AutoPickLitter/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "name": "提瓦特杂事(收集)", - "version": "2.1.3", + "version": "2.1.4", "tags": [ "玄学", "收集", diff --git a/repo/js/AutoPickLitter/records/历史更新记录.txt b/repo/js/AutoPickLitter/records/历史更新记录.txt index 2f8d87483..2348bc1c9 100644 --- a/repo/js/AutoPickLitter/records/历史更新记录.txt +++ b/repo/js/AutoPickLitter/records/历史更新记录.txt @@ -1,3 +1,10 @@ +### 版本:2.1.3 +记录各子任务运行时间,避免出现重复运行 +增加界面调整,应对某些环境,导致点击失败 +去除实时任务 + +注意此次更新会覆盖本地默认账户文件 + ### 版本:2.1.2 更换识别方式,让龙蛋数量进行准确识别 回退为打开背包识别龙蛋