Development#459
Merged
Merged
Conversation
* 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.