Skip to content

Conversation

@Chillibloke
Copy link
Contributor

Add dialogue handling for multi-destination teleport items when used from inventory (not equipped). Previously, items like Slayer Ring would interact successfully but fail to handle the destination selection dialogue that appears afterward.

Supported items: Slayer ring, Games necklace, Skills necklace, Ring of dueling, Ring of wealth, Amulet of glory, Combat bracelet, Digsite pendant, Necklace of passage, Giantsoul amulet.

Add dialogue handling for multi-destination teleport items when used
from inventory (not equipped). Previously, items like Slayer Ring would
interact successfully but fail to handle the destination selection
dialogue that appears afterward.

Supported items: Slayer ring, Games necklace, Skills necklace,
Ring of dueling, Ring of wealth, Amulet of glory, Combat bracelet,
Digsite pendant, Necklace of passage, Giantsoul amulet.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 28, 2026

Walkthrough

The changes extend Rs2Walker.java to support dialogue-based destination selection for teleport items. A new helper method identifies items requiring destination dialogue selection (slayer ring, games necklace, ring of dueling, amulet of glory, combat bracelet, and others). Both inventory-based and wearable-based teleport handling now include logic to trigger destination dialogue, select the specified destination, and log travel. Special handling for burning amulet confirms wilderness teleport through dialogue flow.

Possibly related PRs

  • Microbot 1571: Modifies Rs2Walker.java's inventory teleport handling and refines teleport action keyword parsing logic, complementing this PR's dialogue-based teleport item detection.
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding dialogue handling for inventory-based teleport items, which is the primary focus of this PR.
Description check ✅ Passed The description is directly related to the changeset, explaining the problem being solved and listing the supported items.

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

✨ Finishing touches
  • 📝 Generate docstrings

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ast-grep (0.40.5)
runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/walker/Rs2Walker.java

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
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: 0

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)

1928-1943: Inconsistent handling: Burning amulet inventory path missing destination selection.

The inventory burning amulet handling (lines 1934-1939) only performs the wilderness confirmation step, but when rubbing a burning amulet from inventory, the game first presents a destination selection dialogue (Chaos Temple, Bandit Camp, Lava Maze) before the wilderness warning.

Compare with:

  • Lines 1929-1933: Other dialogue-based items correctly wait for and click the destination option.
  • Lines 1963-1967 (wearable path): Burning amulet works because invokeMenu(rs2Item, destination) directly selects the destination from equipment menu before the wilderness confirmation.

The inventory burning amulet should select the destination first, then confirm the wilderness teleport.

Proposed fix
             } else if (isDialogueBasedTeleportItem(transport.getDisplayInfo())) {
                 // Multi-destination teleport items: wait for destination selection dialogue
                 Rs2Dialogue.sleepUntilSelectAnOption();
                 Rs2Dialogue.clickOption(destination);
                 log.info("Traveling to {} - ({})", transport.getDisplayInfo(), transport.getDestination());
                 return true;
             } else if (transport.getDisplayInfo().toLowerCase().contains("burning amulet")) {
-                // Burning amulet in inventory: confirm wilderness teleport
+                // Burning amulet in inventory: select destination then confirm wilderness teleport
+                Rs2Dialogue.sleepUntilSelectAnOption();
+                Rs2Dialogue.clickOption(destination);
                 Rs2Dialogue.sleepUntilInDialogue();
                 Rs2Dialogue.clickOption("Okay, teleport to level");
                 log.info("Traveling to {} - ({})", transport.getDisplayInfo(), transport.getDestination());
                 return true;

@chsami
Copy link
Owner

chsami commented Jan 31, 2026

I'm not sure if I understand this change I don't think this is needed, we use the immediate action. I just tested the walker with games necklace and it teleports correctly.

Image

@Chillibloke
Copy link
Contributor Author

It was definitely not working specifically with the slayer ring, was opening the dialogue and not going through, was it was not using the right click options

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