From 6db0f29e12708ad742f970493b2d02854075967d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vin=C3=ADcius=20Rodrigues=20Silva?= Date: Sat, 21 Feb 2026 13:16:24 -0300 Subject: [PATCH] feat(motherloadmine): add option to drop gems (#312) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(motherloadmine): add option to drop gems * docs(motherloadmine): task checklist for dropping gems * chore(motherloadmine): bump plugin version * chore: revert adding tasks/todo.md * chore: revert unintentional change to Microbot.java --------- Co-authored-by: chsami Co-authored-by: eemil Co-authored-by: Chris Gemmell Co-authored-by: Jesús Hernández <62583125+jesufh@users.noreply.github.com> Co-authored-by: Netoxic <35343567+Netoxique@users.noreply.github.com> Co-authored-by: Gage307 Co-authored-by: davidja92 Co-authored-by: FunkyMonkeyCloud Co-authored-by: FunkyMonkeyCloud Co-authored-by: Igor <74077743+Bolado@users.noreply.github.com> Co-authored-by: Jamdrizzle Co-authored-by: Jam Co-authored-by: eqp48 Co-authored-by: VIPDO1 <74063365+VIPDO1@users.noreply.github.com> Co-authored-by: Syntax <79747812+Syntax2022@users.noreply.github.com> Co-authored-by: Syntax Co-authored-by: Pixelated Co-authored-by: Chillibloke <87402686+Chillibloke@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 Co-authored-by: Sorries --- .../motherloadmine/MotherloadMineConfig.java | 13 +++++++++++++ .../motherloadmine/MotherloadMinePlugin.java | 2 +- .../motherloadmine/MotherloadMineScript.java | 18 ++++++++++++++++++ .../motherloadmine/enums/MLMStatus.java | 3 ++- 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineConfig.java b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineConfig.java index 5755738e39..52be52fefb 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineConfig.java +++ b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineConfig.java @@ -22,6 +22,7 @@ public interface MotherloadMineConfig extends Config String inventorySetup = "inventory-setup"; String useDepositAll = "useDepositAll"; String antiCrash = "antiCrash"; + String dropGems = "dropGems"; String useUpstairsMine = "useUpstairsMine"; String useUpstairsHopper = "useUpstairsHopper"; String miningArea = "miningArea"; @@ -89,6 +90,18 @@ default boolean useAntiCrash() return false; } + @ConfigItem( + keyName = dropGems, + name = "Drop Gems", + description = "Automatically drop gems while mining", + position = 4, + section = generalSection + ) + default boolean dropGems() + { + return false; + } + // Mine upstairs @ConfigItem( keyName = useUpstairsMine, diff --git a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java index 6890ea934e..29585fa404 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java +++ b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMinePlugin.java @@ -36,7 +36,7 @@ ) public class MotherloadMinePlugin extends Plugin { - static final String version = "1.8.4"; + static final String version = "1.9.0"; @Inject private MotherloadMineConfig config; diff --git a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java index e63c7d8f02..ee1341b871 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java +++ b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/MotherloadMineScript.java @@ -151,6 +151,9 @@ private void executeTask() case DEPOSIT_HOPPER: depositHopper(); break; + case DROP_GEMS: + dropGems(); + break; } } @@ -176,6 +179,11 @@ private void determineStatusFromInventory() return; } + if (config.dropGems() && hasGemsInInventory()) { + status = MLMStatus.DROP_GEMS; + return; + } + int payDirtCount = payDirtCount(); if (payDirtCount > 0 && Rs2Inventory.isFull()) { resetMiningState(); @@ -263,6 +271,16 @@ private boolean hasOreInInventory() ); } + private boolean hasGemsInInventory() { + return Rs2Inventory.contains(ItemID.UNCUT_SAPPHIRE, ItemID.UNCUT_EMERALD, ItemID.UNCUT_RUBY, ItemID.UNCUT_DIAMOND); + } + + private void dropGems() { + if (hasGemsInInventory()) { + Rs2Inventory.dropAll(ItemID.UNCUT_SAPPHIRE, ItemID.UNCUT_EMERALD, ItemID.UNCUT_RUBY, ItemID.UNCUT_DIAMOND); + } + } + private int payDirtCount() { return Rs2Inventory.count(ItemID.PAYDIRT); } diff --git a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/enums/MLMStatus.java b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/enums/MLMStatus.java index a6225cdb6f..c8c77f98e8 100644 --- a/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/enums/MLMStatus.java +++ b/src/main/java/net/runelite/client/plugins/microbot/motherloadmine/enums/MLMStatus.java @@ -6,5 +6,6 @@ public enum MLMStatus { DEPOSIT_HOPPER, BANKING, EMPTY_SACK, - FIXING_WATERWHEEL + FIXING_WATERWHEEL, + DROP_GEMS }