Skip to content

fix(build): bump project version to 1.12.26.2#1763

Merged
chsami merged 3 commits intomainfrom
development
May 8, 2026
Merged

fix(build): bump project version to 1.12.26.2#1763
chsami merged 3 commits intomainfrom
development

Conversation

@chsami
Copy link
Copy Markdown
Owner

@chsami chsami commented May 8, 2026

webwalker fixes

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 8, 2026

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 0571043e-1791-42a4-adc1-a1e5c2d86dce

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

This PR bumps the version to 2.5.6 and refactors two key gameplay systems. VirtualMouse extracts natural mouse movement eligibility into a reusable shouldMoveNaturally() helper method, consolidating antiban settings and coordinate checks used in click and drag operations. Rs2Walker undergoes substantial refactoring: door handling gains segment-aware detection with new helper methods for composition validation and nearby-door scanning, transport selection prefers legacy object-id mappings before falling back to composition-based scanning, and the handleObject method now returns a boolean with explicit plane-change detection and structured retry logic. Path proximity checks are simplified with a cleaner early-exit condition.

Possibly related PRs

  • chsami/Microbot#1742: Modifies Rs2Walker's transport and door interaction logic similarly to improve object handling and interaction robustness.
  • chsami/Microbot#1496: Modifies Rs2Walker's transport handling including closed-variant detection and open→closed object-id mappings.
  • chsami/Microbot#1703: Direct version bump to microbot.version in gradle.properties.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title claims a version bump to 1.12.26.2, but gradle.properties only updates microbot.version from 2.5.5 to 2.5.6, which is inconsistent. Either update the title to reflect the actual version change (2.5.5 to 2.5.6) or clarify if 1.12.26.2 is a separate project version being updated elsewhere.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The description 'webwalker fixes' accurately reflects the substantial changes to Rs2Walker.java and related mouse movement logic throughout the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2Walker.java (1)

1423-1429: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Normalize blacklisted door coordinates before lookup.

sessionBlacklistedDoors is populated with probe, which is already instance-normalized, but the guard at Line 1425 still checks the raw path tiles. In instanced areas that means the blacklist never matches and the same quest-locked door can be retried indefinitely.

Possible fix
-        // Skip any door whose tile was blacklisted after a prior quest-lock detection —
-        // avoid re-triggering the same failed interact loop this session.
-        WorldPoint skipFrom = path.get(index);
-        WorldPoint skipTo = index + 1 < path.size() ? path.get(index + 1) : null;
+        boolean isInstance = Microbot.getClient()
+                .getTopLevelWorldView()
+                .getScene()
+                .isInstance();
+
+        // Skip any door whose tile was blacklisted after a prior quest-lock detection —
+        // avoid re-triggering the same failed interact loop this session.
+        WorldPoint skipFrom = isInstance
+                ? Rs2WorldPoint.convertInstancedWorldPoint(path.get(index))
+                : path.get(index);
+        WorldPoint skipTo = index + 1 < path.size()
+                ? (isInstance
+                    ? Rs2WorldPoint.convertInstancedWorldPoint(path.get(index + 1))
+                    : path.get(index + 1))
+                : null;
         if (sessionBlacklistedDoors.contains(skipFrom)
                 || (skipTo != null && sessionBlacklistedDoors.contains(skipTo))) {
             return false;
         }
 
         List<String> doorActions = List.of("pay-toll", "pick-lock", "walk-through", "go-through", "open");
-        boolean isInstance = Microbot.getClient()
-                .getTopLevelWorldView()
-                .getScene()
-                .isInstance();

Also applies to: 1438-1445, 1565-1569

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2Walker.java`:
- Around line 2262-2265: The current logic in handleTransports exits immediately
when handleObject(transport, object) returns false, so the logged "retrying"
path never actually retries; change the control flow so that transient/miss
results from handleObject do not cause an immediate return from
handleTransports. Concretely, update handleObject (or its callers) to
distinguish fatal failures vs transient "retry" outcomes (e.g., boolean -> enum
or set a transport.retry flag) and in handleTransports, when a transient/retry
result is detected after prepareTransportObjectForInteraction(object), do not
return false—instead continue to the retry/fallback logic (allow the second
attempt or trigger candidate rescanning for stairs/ladder/trapdoor) so the retry
path logged around the transport handling is actually executed. Ensure the same
change is applied to the analogous branch around the code that logs "retrying"
(the 2325–2328 area) so both retry paths behave consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 90cc6789-6c6c-4737-8371-d3ce6e239145

📥 Commits

Reviewing files that changed from the base of the PR and between af640e3 and 6edbacb.

📒 Files selected for processing (3)
  • gradle.properties
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/mouse/VirtualMouse.java
  • runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2Walker.java

Comment on lines +2262 to +2265
prepareTransportObjectForInteraction(object);
if (!handleObject(transport, object)) {
return false;
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

The new transport “retry” path never retries.

At Line 2326 the code logs retrying, but handleObject() returns false immediately, and Line 2263 then exits handleTransports() on the first miss. That means no second attempt and no fallback candidate scan for a required stair/ladder/trapdoor interaction.

Possible fix
-            if (!started) {
-                log.debug("[Walker] {} transport click on {} produced no movement/animation; retrying",
-                        transport.getAction(), tileObject.getId());
-                return false;
-            }
+            if (!started) {
+                log.debug("[Walker] {} transport click on {} produced no movement/animation; retrying",
+                        transport.getAction(), tileObject.getId());
+                Rs2GameObject.interact(tileObject, transport.getAction());
+                started = sleepUntil(() -> Rs2Player.getWorldLocation().getPlane() != z
+                        || Rs2Player.isMoving()
+                        || Rs2Player.isAnimating(), 1800);
+                if (!started) {
+                    return false;
+                }
+            }

Also applies to: 2325-2328

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2Walker.java`
around lines 2262 - 2265, The current logic in handleTransports exits
immediately when handleObject(transport, object) returns false, so the logged
"retrying" path never actually retries; change the control flow so that
transient/miss results from handleObject do not cause an immediate return from
handleTransports. Concretely, update handleObject (or its callers) to
distinguish fatal failures vs transient "retry" outcomes (e.g., boolean -> enum
or set a transport.retry flag) and in handleTransports, when a transient/retry
result is detected after prepareTransportObjectForInteraction(object), do not
return false—instead continue to the retry/fallback logic (allow the second
attempt or trigger candidate rescanning for stairs/ladder/trapdoor) so the retry
path logged around the transport handling is actually executed. Ensure the same
change is applied to the analogous branch around the code that logs "retrying"
(the 2325–2328 area) so both retry paths behave consistently.

@chsami chsami merged commit 6d0ccd0 into main May 8, 2026
3 checks 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.

2 participants