Merged
Conversation
chsami
pushed a commit
that referenced
this pull request
Jun 11, 2024
* update: added banking feature and options for firemake * update: add firemaking logic fix: removed 'hasAxeInventory' config option & adjusted dropall to use itemname fix: changed script loop interval to 600ms to line-up with server ticks * feat: add isStandingOnObject() * update: adjustments to firemake logic * fix: change animation check to use enum * refactor: isStandOnObject -> isStandingOnGameObject feat: isStandingOnGroundItem + getAnimation + getPoseAnimation * fix: add isFiremake check before using items fix: add StandingOnGameObject check and isStandingOnGroundItem check to burnlog loop fix: changed logic for waiting to walk to bank * hotfix: change bank logic
chsami
pushed a commit
that referenced
this pull request
Nov 3, 2024
Config now uses @ConfigInformation, various fixes implemented per rev…
mdp18
pushed a commit
to mdp18/Microbot
that referenced
this pull request
Apr 13, 2026
…tances (chsami#1741) Any script that called Rs2Walker.walkTo(overworldPoint) while the player was inside their POH hung forever, tight-looping "localpoint returned null". The same root cause broke PohTeleports.isInHouse / usePortalNexus / useJewelleryBox and the Shortest Path "Detect available POH teleports" button on any non-small house. Root cause: Rs2Player.getWorldLocation() returns the overworld template-mapped tile (e.g. 1877,7052,1) inside a POH instance, not the player's real scene coords. Every WorldPoint -> LocalPoint -> Tile lookup in the walker, shortest path, poh, and gameobject utilities is fed that template tile, which isn't in the loaded scene grid, so every conversion returns null and the call silently aborts. The proper upstream fix is splitting Rs2Player.getWorldLocation() into getNavigationLocation() (current behavior, for pathfinder callers) and getSceneLocation() (raw instance tile, for scene-anchor callers) and auditing all ~30 callers. That is a larger refactor. These patches apply localized workarounds at each downstream symptom so POH teleports work today. Patches in this commit: 1. shortestpath/PohPanel.java - Add public static WorldPoint getExitPortalTile() accessor so other code can read the configured exit-portal tile without reaching into private fields. 2. shortestpath/ShortestPathPlugin.java (setTargets) - When the player is in a POH instance and an exit portal tile is configured, remap the pathfinder source from the template tile to the exit portal. Without this the pathfinder searches from a tile that has no registered POH transport edges and returns a pure walk path. 3. shortestpath/components/ExitTilePanel.java - detectTile() previously routed through Rs2GameObject.getGameObject(id), which is anchored on Rs2Player.getWorldLocation() and fails inside POH. Use Rs2TileObjectCache.query().withId(POH_EXIT_PORTAL).nearest() instead, matching the community fix pattern. 4. util/walker/Rs2Walker.java (setTarget, handleTransports, handleSpiritTree) - setTarget: same pathfinder-source remap as chsami#2. - handleTransports: skip the origin-plane guard when the player is in a POH instance, since the player's template plane never matches the configured exit-portal plane. - handleTransports: for POH transports in a POH instance, pass the origin straight through instead of calling WorldPoint.toLocalInstance (which returns empty because the exit-portal tile isn't in the player's instance chunks). - handleSpiritTree: fall back to PohTeleports.getSpiritTree() when findObjectById returns null, so the POH spirit tree is reachable. 5. util/poh/PohTeleports.java (isInHouse, usePortalNexus) - isInHouse() now uses Rs2TileObjectCache.query().withId(POH_EXIT_PORTAL) instead of Rs2GameObject.getGameObject, so it works on large houses where the exit portal is outside render range of Rs2Player.getWorldLocation(). - usePortalNexus() scans Scene.getTiles() directly for any PORTAL_IDS match instead of relying on the broken anchor lookup. 6. util/poh/data/NexusPortal.java - Expand PORTAL_IDS to cover all current Nexus object variants (POH_TELENEXUS_1/2/3, POH_NEXUS_4_AMULET, POH_NEXUS_5_AMULET, etc.). Without this, many POHs register zero Nexus transports. 7. util/gameobject/Rs2GameObject.java + util/tileobject/Rs2TileObjectModel.java - Anchor fallback: when localPointFromWorldSafe(Rs2Player.getWorldLocation()) returns null (i.e. inside a POH), fall back to the player's raw LocalPoint. Touches every getGameObject anchor site that currently aborts early. - Distance gate in clickObject / Rs2TileObjectModel.click: when the target object is in the current scene, compare LocalPoint sceneX/sceneY instead of Rs2Player.getWorldLocation().distanceTo(object.getWorldLocation()), which returns Integer.MAX_VALUE across the POH template/instance coordinate boundary and falsely triggers the "not close enough, walking" branch. Verification End-to-end tested via a debug Hub plugin (pohteleportdebug) that enters the POH via Construction cape and runs all four teleport types sequentially on a fully configured Hosidius POH: - Portal Nexus -> Grand Exchange OK - Spirit Tree -> Tree Gnome Village (arrived 2 tiles from dest) OK - Fairy Ring AJP -> Mudskipper Point (arrived 2 tiles from dest) OK - Ornate Jewellery Box -> Edgeville Monastery OK All four now succeed where every one of them previously hung or returned early. Full symptom analysis and logs are in issue chsami#1741. Closes chsami#1741
chsami
added a commit
that referenced
this pull request
Apr 18, 2026
…ker unit tests PathfinderBenchmarkTest: fixed-corpus offline benchmark that prints nodesChecked / elapsedMs / pathLength / endpoint-distance for each route and asserts loose correctness bounds, so optimization changes can be compared pre/post and regressions show up as failures. ShortestPathTier1RegressionTest: pins invariants for Tier 1 webwalker bugs — PrimitiveIntHashMap rehash data loss (#1), growBucket overflow (#4), wilderness underground L20/L30 bounds (#2), post-login refresh (#5), and the orphan teleportation_poh.tsv being gone (#3). Rs2WalkerUnitTest: unit coverage for the pure helpers extracted during Tier-3 hardening — sidestep-tile ranking toward target (#15), minimap forward-scan clickable-index finder (#21), quest-lock dialogue keyword heuristic (#19), and the UNREACHABLE telemetry counters (#22). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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.
-Created Auto Chinchompa Plugin
GUIDE: