Skip to content

Auto Chin Plugin#2

Merged
Jrod7938 merged 7 commits intochsami:mainfrom
Jrod7938:main
Aug 14, 2023
Merged

Auto Chin Plugin#2
Jrod7938 merged 7 commits intochsami:mainfrom
Jrod7938:main

Conversation

@Jrod7938
Copy link
Copy Markdown
Contributor

-Created Auto Chinchompa Plugin
GUIDE:

  1. Place your box traps down
  2. Enable Plugin

@Jrod7938 Jrod7938 merged commit 2dc5292 into chsami:main Aug 14, 2023
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…
gmason0 pushed a commit that referenced this pull request Jul 27, 2025
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>
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.

1 participant