From 3663aa7cb7d842b20940c6530c2ef586ac274a80 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 16 Feb 2026 15:05:18 -0800 Subject: [PATCH 1/2] fix(MahoganyHomes): fixed ladder usage instead of teleporting out and walking back to house. --- .../mahoganyhomez/MahoganyHomesPlugin.java | 3 +- .../mahoganyhomez/MahoganyHomesScript.java | 35 +++++++++++++++---- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesPlugin.java b/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesPlugin.java index cfd613aae4..8d16b1d44f 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesPlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesPlugin.java @@ -55,7 +55,7 @@ isExternal = PluginConstants.IS_EXTERNAL ) public class MahoganyHomesPlugin extends Plugin { - public static final String version = "0.0.8"; + public static final String version = "0.0.9"; private static final List PLANKS = Arrays.asList(ItemID.PLANK, ItemID.OAK_PLANK, ItemID.TEAK_PLANK, ItemID.MAHOGANY_PLANK); private static final List PLANK_NAMES = Arrays.asList("Plank", "Oak plank", "Teak plank", "Mahogany plank"); private static final Map MAHOGANY_HOMES_REPAIRS = new HashMap<>(); @@ -271,6 +271,7 @@ public void shutDown() { mapArrow = null; lastChanged = null; lastCompletedCount = -1; + plankCount = -1; contractTier = 0; script.shutdown(); } diff --git a/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java b/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java index 019fb71f41..a17efea7fc 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java @@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import net.runelite.api.*; import net.runelite.api.coords.WorldPoint; +import net.runelite.api.gameval.InterfaceID; import net.runelite.client.plugins.microbot.Microbot; import net.runelite.client.plugins.microbot.Script; import net.runelite.client.plugins.microbot.shortestpath.ShortestPathPlugin; @@ -23,6 +24,7 @@ import net.runelite.client.plugins.microbot.util.tile.Rs2Tile; import net.runelite.client.plugins.microbot.util.walker.Rs2Walker; import net.runelite.client.plugins.microbot.util.walker.WalkerState; +import net.runelite.client.plugins.microbot.util.widget.Rs2Widget; import java.util.*; import java.util.concurrent.TimeUnit; @@ -124,6 +126,12 @@ private void fix() { return; } + if (Rs2Widget.isWidgetVisible(InterfaceID.PohFurnitureCreation.FRAME)){ + Microbot.log("Out of plank and furniture creation widget pop up"); + bank(); + return; + } + Rs2WorldPoint playerLocation = Rs2Player.getRs2WorldPoint(); MahoganyHomesOverlay.setFixableObjects(getFixableObjects()); @@ -278,12 +286,27 @@ private void finish() { var npc = Rs2Npc.getNpc(plugin.getCurrentHome().getNpcId()); if (npc == null && Rs2Player.getWorldLocation().getPlane() > 0) { log("We are on the wrong floor, Trying to find ladder to go down"); - TileObject closestLadder = Rs2GameObject.findObject(plugin.getCurrentHome().getLadders()); - if (Rs2GameObject.interact(closestLadder)) - sleepUntil( - () -> Rs2Player.getWorldLocation().getPlane() == 0 - , 5000); - return; + int playerPlane = Rs2Player.getWorldLocation().getPlane(); + + List ladders = Rs2GameObject.getGameObjects( + obj -> Arrays.stream(plugin.getCurrentHome().getLadders()) + .anyMatch(id -> id == obj.getId()) + && obj.getWorldLocation().getPlane() == playerPlane + ); + GameObject closestLadder = ladders.stream() + .min(Comparator.comparingInt(obj -> + obj.getWorldLocation().distanceTo(Rs2Player.getWorldLocation()))) + .orElse(null); + Rs2WorldPoint objectLocation = Rs2Tile.getNearestWalkableTile(closestLadder); + if (!openDoorToObject(closestLadder, objectLocation)) { + if (Rs2GameObject.interact(closestLadder)) { + sleepUntil( + () -> Rs2Player.getWorldLocation().getPlane() == 0 + , 5000); + return; + } + } + //} } if (npc != null) { Rs2WorldPoint npcLocation = new Rs2WorldPoint(npc.getWorldLocation()); From 19d23ed44608842fb31c18a4a7cb3d9247bac121 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 16 Feb 2026 21:45:39 -0800 Subject: [PATCH 2/2] fix(MahoganyHomes): Small fix for when out of plank and furniture creation widget pops up --- .../plugins/microbot/mahoganyhomez/MahoganyHomesScript.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java b/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java index a17efea7fc..b79511fa82 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/mahoganyhomez/MahoganyHomesScript.java @@ -128,6 +128,7 @@ private void fix() { if (Rs2Widget.isWidgetVisible(InterfaceID.PohFurnitureCreation.FRAME)){ Microbot.log("Out of plank and furniture creation widget pop up"); + Rs2Bank.walkToBank(); bank(); return; } @@ -306,7 +307,6 @@ private void finish() { return; } } - //} } if (npc != null) { Rs2WorldPoint npcLocation = new Rs2WorldPoint(npc.getWorldLocation());