Skip to content

Development to main#488

Merged
chsami merged 38 commits into
mainfrom
development
Jun 16, 2026
Merged

Development to main#488
chsami merged 38 commits into
mainfrom
development

Conversation

@chsami

@chsami chsami commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Sync development into main after the latest approved Hub PR batch.\n\nValidation: waiting for GitHub checks to pass before merge.

runsonmypc and others added 30 commits June 8, 2026 18:58
…ree transport

TELEPORTING was a no-op that immediately advanced to DISMANTLE_HOUSE_1
without ever calling Rs2Walker, so the player never left the bank.
Now calls Rs2Walker.walkTo(birdhouseLocation1) which routes via digsite
pendant to Fossil Island.

MUSHROOM_TELEPORT was also a no-op relying on Rs2Walker to route through
the mushtree, but the walker kept detouring to the bank instead.
Replaced with direct object interaction: Use mushtree → select Mushroom
Meadow from the Mycelium Transportation System widget.
…ot pickup

When running alongside another plugin (e.g. alching while farming seaweed),
the looter's pickup clicks get overridden. Priority Mode holds pauseAllScripts
for the full detect→click→walk→pickup cycle, same pattern as
GiantSeaweedSporeScript and AIO Fighter's force-loot.
…ases

After confirming a skill on a lamp, the XP-award "Click here to continue" dialogue was left open, so the lamp was never consumed. UseLampEvent then kept re-queuing and the BlockingEventManager pause gate never released, freezing other plugins. Dismiss the continue dialogue (bounded waits) before checking consumption so the event clears and scripts resume cleanly.

Also rename the plugin display name and overlay title to "Random Event Handler" (config group key left unchanged to preserve user settings) and bump version to 2.1.1.
executeTask runs via scheduleWithFixedDelay, whose JDK contract silently
cancels all future executions once any run throws. A blocking event (e.g.
EventDismiss using a stray lamp) running concurrently with the deposit/
empty workflow could leave game state that made a later tick throw,
permanently freezing the plugin on its last status (IDLE) with no log and
no recovery, even across plugin restarts.

Wrap the loop body in try/catch (mirroring AutoMiningScript) and log the
stack trace, so a transient failure recovers on the next 600ms tick
instead of killing the script. Bump 1.9.5 -> 1.9.6.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Per the wiki, scrambled egg can be made on a range or a fire; only the item ids were wrong. Addresses Copilot review feedback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…read-safe weapon map, log AUTO fallback

Addresses Copilot review feedback on #477.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…scans, clearer line scoring

Stop conditions now route through the banking cleanup like targetLevel; TileScanner returns its sets from the client-thread call (proper happens-before) and exposes a one-scan fire lookup for findLightableTile. Addresses Copilot review feedback on #478.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ale javadoc

Caps XP samples per skill, captures the executor locally in refreshNow, falls back when the alert threshold changes mid-crossing, fixes the full-width-sections javadoc, replaces double-brace init and the banner emoji, and shows -- for the world before login. Addresses Copilot review feedback on #479.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…community feedback (v1.2.1)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The plugin would stand idle mid-game. Three root causes, all addressed:

- Query-API migration dropped auto-walk: `cache.query().interact(id, action)`
  clicks at the player's tile and does not walk into range, so any
  out-of-range object interaction silently no-ops every tick. Route object
  interactions through a walk-first helper that web-walks when >51 tiles
  away and hands off to click-to-walk once close (restores legacy behaviour).

- repairCells() locked the loop: it looked up the shield pylons by a name
  filter (`contains("cell_tile")`) that never matches a real object name, so
  the query was always empty, yet the method returned true unconditionally.
  That short-circuited the main loop at `if (repairCells()) return;` on every
  tick whenever a powered cell was held, leaving the bot frozen until the next
  game start. Match pylons by object id via CellType.GetShieldTier, and only
  return true when a cell is actually placed/used.

- Static state leaked across plugin restarts; reset it in run() so a restart
  behaves like a first start. Also removed a per-tick blanket
  Rs2Walker.setTarget(null) that churned the walker and spammed the log.

Verified live: full mine -> craft -> portal -> craft cycle with no stalls,
including while holding a powered cell. Bump version to 1.5.6.
Runes were only deposited from the !shouldMineGuardianRemains (crafting)
branch. When a round ends the chat handler sets shouldMineGuardianRemains
= true, so the loop switches to the mining branch and waitingForGameToStart()
intercepts the between-rounds lobby tick entirely -- the deposit call was
never reached and runes carried into the next round. The !isFull guard also
skipped depositing a full inventory of crafted runes (the typical end-of-round
state).

- depositRunesIntoPool(): drop the !isFull and !optimizedEssenceLoop guards
  that suppressed depositing, and make it freeze-safe -- return true only when
  the deposit pool actually exists (walk-first toward it / click it), else
  return false so the loop never locks up holding runes.
- waitingForGameToStart(): deposit any held runes before prepping/mining for
  the next game, so end-of-round runes are banked reliably.

Bump version to 1.5.7.
… scrollboxes

- Filter Zanaris fairy ring query by FAIRY_RING_ID instead of grabbing
  nearest untyped tile object (was clicking wrong object)
- Remove broken isInteracting() gate from fishing loop
- Add scrollbox depositing during banking
… deposit scrollboxes

- Fix Zanaris fairy ring: correct object ID (29560), coordinate (4434 not
  4435), and action text ("Last-destination" not "Last-destination (DKP)")
- Use tile object cache with nearestOnClientThread() — Rs2GameObject.getAll()
  does not find the Zanaris fairy ring
- Remove broken isInteracting() check from fishing loop (upstream unreliable)
- Add scrollbox depositing during banking
- Bump version to 1.2.1
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
chsami added 8 commits June 16, 2026 22:09
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
Reviewed for critical/security issues, malicious code, and plugin version bump. No blocking issues found.
@chsami chsami merged commit 663529d into main Jun 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants