From 31af5dd592e9e8abf60f7d7467f57a2460d802b2 Mon Sep 17 00:00:00 2001 From: ZareMate <0.zaremate@gmail.com> Date: Sun, 15 Mar 2026 14:54:24 +0100 Subject: [PATCH] update: implement dynamic loop delay for spawner cycles --- index.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index cca23a4..b8eecd3 100644 --- a/index.js +++ b/index.js @@ -9,7 +9,8 @@ require("dotenv").config(); const logs = []; const MAX_LOGS = 200; -const LOOP_DELAY_MS = 60_000; +const LOOP_DELAY_MIN_MS = 5 * 60_000; +const LOOP_DELAY_MAX_MS = 10 * 60_000; const MAX_ALLOWED_MOVE_BLOCKS = 10; const LOOP_RESUME_TOLERANCE_BLOCKS = 1.5; const REJOIN_DELAY_MS = 60_000; @@ -427,6 +428,11 @@ function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } +function getRandomLoopDelayMs() { + const span = LOOP_DELAY_MAX_MS - LOOP_DELAY_MIN_MS; + return LOOP_DELAY_MIN_MS + Math.floor(Math.random() * (span + 1)); +} + function stopSpawnerLoop(reason, options = {}) { if (!spawnerLoopRunning) return; spawnerLoopRunning = false; @@ -1208,8 +1214,10 @@ function startSpawnerLoop() { } if (!spawnerLoopRunning) break; - pushLog("waiting 60s for next cycle"); - await sleep(LOOP_DELAY_MS); + const waitMs = getRandomLoopDelayMs(); + const waitMinutes = (waitMs / 60_000).toFixed(2); + pushLog(`waiting ${waitMinutes} min for next cycle`); + await sleep(waitMs); } })(); }