Skip to content

Development#459

Merged
chsami merged 10 commits into
mainfrom
development
May 29, 2026
Merged

Development#459
chsami merged 10 commits into
mainfrom
development

Conversation

@chsami
Copy link
Copy Markdown
Owner

@chsami chsami commented May 29, 2026

No description provided.

pjmarz and others added 10 commits May 25, 2026 09:49
* fix(cluesolver): client-thread safety for clue task classes

Multiple clue task classes (AnagramClueTask, CrypticClueTask, EmoteClueTask, RequirementHandlerTask, CoordinateClueTask, MusicClueTask) threw IllegalStateException 'must be called on client thread' when reading player world location from the script thread.

Fix: added a getPlayerLocationSafe() helper in ClueTask base class that wraps the read with Microbot.getClientThread().runOnClientThreadOptional(). All callers updated to use the safe accessor.

* chore(cluesolver): address Copilot review feedback

- Remove dead `hasArrived(Player)` method from AnagramClueTask (never called; state machine uses isWithinRadius instead).
- Remove unused Player/NPC imports across Anagram/Coordinate/Cryptic/Music tasks.
- Reword `ClueTask#getPlayerLocationSafe` JavaDoc to drop hardcoded line numbers (drift hazard).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…#451)

Pathfinder routes through the rubber cap mushroom shortcuts which
causes the walker to stall. Add tile restrictions on all 5 origin
tiles when on Fossil Island, cleared on shutdown. Bump to 1.1.3.

Co-authored-by: runsonmypc <runsonmypc@users.noreply.github.com>
* feat(EventDismiss): accept and use lamps from Genie/Count Check

Extends the Event Dismiss plugin to optionally accept lamps from Genie
and Count Check instead of dismissing them. Handles the full dialogue,
waits for the lamp to appear, then uses it on a configurable skill.

Adds a minimal overlay showing lamp skill, usage count, and last lamp
time (only visible when lamp features are active). Also adds a "Use
Stray Lamps" option to automatically use lamps from any source.

Version bumped to 1.1.0.

* fix(EventDismiss): update lamp widget IDs for Sailing skill addition

Sailing (child 7) was added to the lamp interface since the recovered
code was written, shifting every skill from Hitpoints onward up by one
and moving the confirm button from child 26 to 27. Verified live
against widget group 240.

* chore(EventDismiss): bump version to 2.0.0

Breaking config change: boolean dismiss toggles replaced with
EventAction enums (Accept/Dismiss).

---------

Co-authored-by: runsonmypc <runsonmypc@users.noreply.github.com>
…hresholds, improved state machine (#450)

* fix(tempoross): remove broken isOnOurSide filter, fix client-thread regressions

The X-based center-line check (CENTER_X=3047) only works near the boats.
South of the boats the fishing areas converge — east-side fish spots,
spirit pool, and fires all have X < 3047, so the filter excluded them.

- Remove isOnOurSide from fish spots (distanceTo rangePoint already scopes)
- Remove isOnOurSide from spirit pool (use distanceTo spiritPoolPoint ≤ 15)
- Remove isOnOurSide from fires, tighten fire range from 35 to 5 tiles
- Remove broken inCloud filter from fish spots (was no-op before cloud fix)
- Fix walkToSpiritPool spam: use distance ≤ 2 instead of exact equality
- Fix client-thread NPEs (Rs2Player.getWorldLocation, fightFiresInPath)
- Remove all isInteracting gates (unreliable), use target-identity checks
- Remove blocking waits, add isMoving guards for non-blocking loop
- Add cloud dodge via LocalPoint comparison (fix coordinate space mismatch)
- Lock tether target on wave tick to prevent oscillation
- Add runtime counter to overlay
- Sort item fetching by proximity
- Use walkFastCanvas/walkFastLocal instead of blocking Rs2Walker.walkTo

* fix(tempoross): skip fish spots adjacent to clouds

Filter out fishing spots where the player's fishing position (adjacent
tile) would be under a fire cloud. Uses inCloud radius 1 which covers
2 tiles from the spot center — enough to detect clouds on any adjacent
tile the player would stand on.

* fix(tempoross): eliminate wave freeze by short-circuiting script loop during incoming waves

The client thread was being saturated with ~20+ invoke() round-trips per
300ms script iteration during waves — inventory queries from
areItemsMissing(), live State.getAllFish()/getTotalAvailableFishSlots()
calls in handleStateLoop(), and state.isComplete() in onGameTick all
dispatched to the client thread while it was at peak load processing
wave NPC spawns. On Mac this stalled rendering for seconds.

During a wave the only valid action is tethering, so the script loop
now short-circuits to handleTether() immediately. onGameTick also
returns early during waves. Additional fixes:

- Replace live State method calls in handleStateLoop with cached values
- Replace live isInMinigame() in overlays with cachedInMinigame
- Remove dead Rs2WorldPoint allocation per fish spot per frame
- Remove pathfinding (distanceToPath) from overlay render loop
- Move state transitions and inventory queries out of overlay render
- Add fire-adjacent fish spot detection and douse-before-fish logic
- Enable fire handling in both solo and mass modes
- Fix fire search radius (35 for solo, 5 for mass)
- Remove Rs2Camera.turnTo before tether, click tether immediately
- Add JVM args and javaLauncher to runDebug task for Mac JDK 11

* fix(tempoross): LocalPoint-based coordinate handling for instanced regions

All distance checks, fire detection, work area determination, and NPC
lookups now use LocalPoint instead of WorldPoint to avoid template vs
instanced coordinate mismatches. Fixes wrong-side boat pathing, broken
fire detection/dousing, ammo crate not found, and spirit pool spam.

* fix(tempoross): wave-priority tethering, cloud radius, item gathering resilience

All sleepUntil calls in item gathering break immediately on incoming wave
so the script can tether. Removed forfeit-on-fire from item gathering to
prevent skipping items when fires are near crates. Reduced ammo crate
cloud filter radius from 1-2 tiles to 0 (only skip if cloud is directly
on crate). Stale fish spot reference cleared when spot despawns.

* fix(tempoross): eliminate all remaining WorldPoint coordinate mismatches

Convert finishGame, fetchMissingItems, isOnStartingBoat, FILL ammo crate
sorting, and handleDamagedMast/Totem to use LocalPoint. Slow tether
retries with Rs2Random gaussian. No template-vs-instanced comparisons
remain in functional code.

* fix(tempoross): prevent cooking interruption, Rs2Walker recovery, spec log spam

- Gate item fetching to CATCH states only — handleMinigame was interrupting
  cooking by walking to the water pump when buckets were empty
- Fall back to Rs2Walker.walkTo when LocalPoint.fromWorld returns null
  (player too far for canvas click) in all walk methods
- Move harpoon spec code entirely inside enableHarpoonSpec config check
  so no spec logs emit when the option is disabled
- Prevent fish spot switching while moving to a valid target
- Widen Leave NPC search radius to 40 tiles
- Add wave-break to fire douse sleepUntil in fightFiresInPath
- Reduce fire douse timeout from 10s to 5s
- Use Rs2Random.randomGaussian for tether retry delay
- Add spirit pool coordinate logging for random walk diagnosis

* fix(tempoross): fish spot stability, humanized thresholds, repair blocking, fire responsiveness

- Simplify CATCH guard: return if animating/moving, allow double spot switch
- Per-game randomized thresholds via fancyNormalSample for all energy/intensity checks
- Repair sleepUntil blocks until mast/totem is actually fixed
- Remove doused fires from sortedFires immediately, validate NPC in adjacency checks
- Drop boat-anchor filter in finishGame, pick nearest Leave NPC to player
- Gate item fetching to CATCH states only (no cooking interruption)
- Tether retry uses fancyNormalSample(1200, 2800)
- Config tooltips explain gameplay effects
- Clean up spirit pool spam logging, add NPC coordinate logging
- Rs2Walker fallback for all walk methods when LocalPoint is null

* fix(tempoross): improved repair timing, spirit pool action filter

- Two-phase repair sleep: wait for animation start (3s), then wait for
  completion (10s) — prevents premature timeout when walking to repair
- Spirit pool query now requires "Harpoon" action, filtering out inactive
  pools that caused recurring error log spam

* chore(tempoross): bump version to 2.0.0

Major version bump reflecting the comprehensive rewrite of coordinate
handling, state machine, fire detection, and humanization systems.

---------

Co-authored-by: runsonmypc <runsonmypc@users.noreply.github.com>
* Remove isInteracting() check from executeTask() method

Changed line 136 from:
  if (Rs2Player.isAnimating() || Microbot.getClient().getLocalPlayer().isInteracting()) return;
to:
  if (Rs2Player.isAnimating()) return;

This allows the plugin to execute its action logic even when the player is interacting with objects.

* chore: add MotherloadMinePlugin to debugPlugins

* fix(motherloadmine): replace isInteracting/actionCooldown guards with idle timer

- Remove unreliable isInteracting() and actionCooldownActive guards from
  executeTask() that caused permanent stalls when antiban was disabled
  (pauseAllScripts deadlock via actionCooldown → performActionBreak never
  clearing because onGameTick exits early when antibanEnabled=false)
- Replace with per-state isAnimating() guards for non-mining states
- In handleMining(), use a gaussian-randomized idle timer (mean 3s, floor 2s)
  that tracks continuous idle time instead of animation-start timestamps,
  correctly handling the 1-2s gaps between mining animation swings
- Drop hammer after waterwheel repair even if not picked up from crate
- Remove antiban actionCooldown()/takeMicroBreakByChance() calls that
  triggered the pauseAllScripts deadlock

* fix(motherloadmine): bump version to 1.9.5

---------

Co-authored-by: runsonmypc <runsonmypc@users.noreply.github.com>
…les, fix rake (#455)

* fix(FarmTreeRun): skip Rs2Walker for nearby patches, gate checks on master toggles, fix rake

- Skip Rs2Walker.walkTo when player is already within 16 tiles of the
  patch (covers gardener/leprechaun interactions without invoking the
  full pathfinder)
- Gate all banking, validation, and protection checks behind the master
  enableTrees/enableFruitTrees/enableHardTrees toggles so disabled tree
  types produce zero side-effects
- Wait for rake completion before dropping weeds instead of dropping
  mid-rake on every XP drop

* chore(FarmTreeRun): bump version to 1.2.1

---------

Co-authored-by: runsonmypc <runsonmypc@users.noreply.github.com>
* fix(combat-hotkeys): move prayer toggles off key event thread

Prayer hotkeys were calling Rs2Prayer.toggle() directly on the key
listener thread, causing focus loss and input lag on every press.
Replaced runOnSeperateThread (silently drops calls when the shared
ClientThread future is busy) with a plugin-owned ExecutorService.
Also added a debug overlay panel toggled via config. Bump to v1.1.2.

* feat(butterfly-catcher): add Butterfly Catcher plugin v1.0.0

Automates butterfly and moth catching for Hunter XP.
Supports Ruby Harvest through Moonlight Moth (Varlamore).
Barehanded and butterfly net modes with level/equipment checks on startup.

* fix(butterfly-catcher): correct NPC IDs for Ruby Harvest, Sapphire Glacialis, Snowy Knight

IDs 5525/5526/5527 were wrong. Correct IDs verified against OSRS wiki:
  Ruby Harvest       5525 -> 5556
  Sapphire Glacialis 5526 -> 5555
  Snowy Knight       5527 -> 5554
Bump to v1.0.1.

---------

Co-authored-by: chsami <aintaro@proton.me>
hasStaminaPotionInBank and hasEnergyPotionInBank were not reset when the
plugin restarted, causing the script to skip potion withdrawal on
subsequent runs within the same client session.

Co-authored-by: runsonmypc <runsonmypc@users.noreply.github.com>
@chsami chsami merged commit 8cd142f into main May 29, 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.

5 participants