From 1f74f0504305185ce38d3af011f21fb2a540ec05 Mon Sep 17 00:00:00 2001 From: illumineawake Date: Wed, 29 Jul 2020 19:09:30 +1000 Subject: [PATCH] botutils: mouse clicks now assert not on client thread. Added a delayed mouse click and implemented a handleMouseClick() that will click a point if it is within the viewport, otherwise clicks a random point in the center screen. Executor now sits within botUtils and injects the client executor. allplugins: updated to utilise the mouse changes in bot utils. Banks: Removed some IDs that weren't immediately accessible around Varrock West Bank Powerskiller: add option to logout when missing required items --- botutils/botutils.gradle.kts | 2 +- .../client/plugins/botutils/Banks.java | 9 +- .../client/plugins/botutils/BotUtils.java | 298 ++++++++++++------ .../combinationrunecrafter.gradle.kts | 2 +- .../CombinationRunecrafterPlugin.java | 113 +++---- magicsplasher/magicsplasher.gradle.kts | 2 +- .../magicsplasher/MagicSplasherPlugin.java | 44 +-- plugins.json | 2 +- powerskiller/powerskiller.gradle.kts | 2 +- .../PowerSkillerConfiguration.java | 12 + .../powerskiller/PowerSkillerPlugin.java | 85 ++--- .../powerskiller/PowerSkillerState.java | 1 - quickeater/quickeater.gradle.kts | 2 +- .../plugins/quickeater/QuickEaterPlugin.java | 25 +- release/botutils-3.0.0.jar | Bin 32959 -> 0 bytes release/botutils-3.1.0.jar | Bin 0 -> 34172 bytes release/combinationrunecrafter-1.0.3.jar | Bin 19920 -> 0 bytes release/combinationrunecrafter-1.1.0.jar | Bin 0 -> 19679 bytes release/magicsplasher-1.9.5.jar | Bin 15104 -> 0 bytes release/magicsplasher-2.0.0.jar | Bin 0 -> 14837 bytes release/powerskiller-3.4.0.jar | Bin 16983 -> 0 bytes release/powerskiller-3.5.0.jar | Bin 0 -> 16599 bytes release/quickeater-1.9.0.jar | Bin 4777 -> 0 bytes release/quickeater-2.0.0.jar | Bin 0 -> 4834 bytes ...ity-2.8.0.jar => rooftopagility-2.9.0.jar} | Bin 24232 -> 24076 bytes rooftopagility/rooftopagility.gradle.kts | 2 +- .../rooftopagility/RooftopAgilityPlugin.java | 90 +++--- 27 files changed, 374 insertions(+), 317 deletions(-) delete mode 100644 release/botutils-3.0.0.jar create mode 100644 release/botutils-3.1.0.jar delete mode 100644 release/combinationrunecrafter-1.0.3.jar create mode 100644 release/combinationrunecrafter-1.1.0.jar delete mode 100644 release/magicsplasher-1.9.5.jar create mode 100644 release/magicsplasher-2.0.0.jar delete mode 100644 release/powerskiller-3.4.0.jar create mode 100644 release/powerskiller-3.5.0.jar delete mode 100644 release/quickeater-1.9.0.jar create mode 100644 release/quickeater-2.0.0.jar rename release/{rooftopagility-2.8.0.jar => rooftopagility-2.9.0.jar} (53%) diff --git a/botutils/botutils.gradle.kts b/botutils/botutils.gradle.kts index 8bda13a3..b544afe3 100644 --- a/botutils/botutils.gradle.kts +++ b/botutils/botutils.gradle.kts @@ -25,7 +25,7 @@ import ProjectVersions.openosrsVersion * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "3.0.0" +version = "3.1.0" project.extra["PluginName"] = "BotUtils" project.extra["PluginDescription"] = "Illumine - Utils required for plugins to function with added automation" diff --git a/botutils/src/main/java/net/runelite/client/plugins/botutils/Banks.java b/botutils/src/main/java/net/runelite/client/plugins/botutils/Banks.java index 40c1c37c..a68ba06d 100644 --- a/botutils/src/main/java/net/runelite/client/plugins/botutils/Banks.java +++ b/botutils/src/main/java/net/runelite/client/plugins/botutils/Banks.java @@ -2,6 +2,7 @@ package net.runelite.client.plugins.botutils; import com.google.common.collect.ImmutableSet; import java.util.Set; +import static net.runelite.api.NullObjectID.NULL_34810; import net.runelite.api.ObjectID; public class Banks @@ -12,7 +13,6 @@ public class Banks ObjectID.BANK_BOOTH_10357, ObjectID.BANK_BOOTH_10517, ObjectID.BANK_CHEST_10562, - ObjectID.BANK_BOOTH_10583, ObjectID.BANK_BOOTH_10584, ObjectID.BANK, ObjectID.BANK_BOOTH_11338, @@ -31,6 +31,7 @@ public class Banks ObjectID.BANK_BOOTH_20328, ObjectID.BANK_CHEST_21301, ObjectID.BANK_BOOTH_22819, + NULL_34810, ObjectID.BANK_BOOTH_24101, ObjectID.BANK_BOOTH_24347, ObjectID.BANK_BOOTH_25808, @@ -78,7 +79,7 @@ public class Banks ObjectID.BANK_BOX, ObjectID.BANK_BOX_31949, ObjectID.BANK_CHEST_34343, - ObjectID.BANK_DEPOSIT_BOX, + ObjectID.BANK_DEPOSIT_BOX, //Varrock West Bank Deposit Box ObjectID.BANK_DEPOSIT_CHEST, ObjectID.BANK_DEPOSIT_BOX_25937, ObjectID.BANK_DEPOSIT_BOX_26254, @@ -102,7 +103,6 @@ public class Banks ObjectID.BANK_BOOTH_10357, ObjectID.BANK_BOOTH_10517, ObjectID.BANK_CHEST_10562, - ObjectID.BANK_BOOTH_10583, ObjectID.BANK_BOOTH_10584, ObjectID.BANK, ObjectID.BANK_BOOTH_11338, @@ -121,6 +121,7 @@ public class Banks ObjectID.BANK_BOOTH_20328, ObjectID.BANK_CHEST_21301, ObjectID.BANK_BOOTH_22819, + NULL_34810, ObjectID.BANK_BOOTH_24101, ObjectID.BANK_BOOTH_24347, ObjectID.BANK_BOOTH_25808, @@ -171,7 +172,7 @@ public class Banks ObjectID.BANK_BOX, ObjectID.BANK_BOX_31949, ObjectID.BANK_CHEST_34343, - ObjectID.BANK_DEPOSIT_BOX, + ObjectID.BANK_DEPOSIT_BOX, //Varrock West Bank Deposit Box ObjectID.BANK_DEPOSIT_CHEST, ObjectID.BANK_DEPOSIT_BOX_25937, ObjectID.BANK_DEPOSIT_BOX_26254, diff --git a/botutils/src/main/java/net/runelite/client/plugins/botutils/BotUtils.java b/botutils/src/main/java/net/runelite/client/plugins/botutils/BotUtils.java index 5eb76f81..aa583b21 100644 --- a/botutils/src/main/java/net/runelite/client/plugins/botutils/BotUtils.java +++ b/botutils/src/main/java/net/runelite/client/plugins/botutils/BotUtils.java @@ -12,7 +12,9 @@ import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.Collectors; @@ -97,9 +99,11 @@ public class BotUtils extends Plugin @Inject private OSBGrandExchangeClient osbGrandExchangeClient; + @Inject + ExecutorService executorService; + MenuEntry targetMenu; protected static final java.util.Random random = new java.util.Random(); - ExecutorService executorService; private OSBGrandExchangeResult osbGrandExchangeResult; public boolean randomEvent; @@ -590,14 +594,15 @@ public class BotUtils extends Plugin */ public void click(Rectangle rectangle) { - //assert !client.isClientThread(); + assert !client.isClientThread(); + Point point = getClickPoint(rectangle); click(point); } public void click(Point p) { - //assert !client.isClientThread(); + assert !client.isClientThread(); if (client.isStretchedEnabled()) { @@ -618,14 +623,15 @@ public class BotUtils extends Plugin public void moveClick(Rectangle rectangle) { - //assert !client.isClientThread(); + assert !client.isClientThread(); + Point point = getClickPoint(rectangle); moveClick(point); } public void moveClick(Point p) { - //assert !client.isClientThread(); + assert !client.isClientThread(); if (client.isStretchedEnabled()) { @@ -660,14 +666,15 @@ public class BotUtils extends Plugin public void moveMouseEvent(Rectangle rectangle) { - //assert !client.isClientThread(); + assert !client.isClientThread(); + Point point = getClickPoint(rectangle); moveClick(point); } public void moveMouseEvent(Point p) { - //assert !client.isClientThread(); + assert !client.isClientThread(); if (client.isStretchedEnabled()) { @@ -705,14 +712,84 @@ public class BotUtils extends Plugin public void clickRandomPoint(int min, int max) { + assert !client.isClientThread(); + Point point = new Point(getRandomIntBetweenRange(min, max), getRandomIntBetweenRange(min, max)); click(point); } public void clickRandomPointCenter(int min, int max) { + assert !client.isClientThread(); + Point point = new Point(client.getCenterX() + getRandomIntBetweenRange(min, max), client.getCenterY() + getRandomIntBetweenRange(min, max)); - click(point); + moveClick(point); + } + + public void delayClickRandomPointCenter(int min, int max, long delay) + { + executorService.submit(() -> + { + try + { + sleep(delay); + clickRandomPointCenter(min, max); + } + catch (RuntimeException e) + { + e.printStackTrace(); + } + }); + } + + /* + * + * if given Point is in the viewport, click on the Point otherwise click a random point in the centre of the screen + * + * */ + public void handleMouseClick(Point point) + { + assert !client.isClientThread(); + + final int viewportHeight = client.getViewportHeight(); + final int viewportWidth = client.getViewportWidth(); + + if (point.getX() > viewportWidth || point.getY() > viewportHeight || point.getX() < 0 || point.getY() < 0) + { + clickRandomPointCenter(-200, 200); + return; + } + moveClick(point); + } + + public void handleMouseClick(Rectangle rectangle) + { + assert !client.isClientThread(); + + Point point = getClickPoint(rectangle); + handleMouseClick(point); + } + + public void delayMouseClick(Point point, long delay) + { + executorService.submit(() -> + { + try + { + sleep(delay); + handleMouseClick(point); + } + catch (RuntimeException e) + { + e.printStackTrace(); + } + }); + } + + public void delayMouseClick(Rectangle rectangle, long delay) + { + Point point = getClickPoint(rectangle); + delayMouseClick(point, delay); } /** @@ -752,6 +829,8 @@ public class BotUtils extends Plugin //enables run if below given minimum energy with random positive variation public void handleRun(int minEnergy, int randMax) { + assert client.isClientThread(); + if (client.getEnergy() > (minEnergy + getRandomIntBetweenRange(0, randMax)) || client.getVar(Varbits.RUN_SLOWED_DEPLETION_ACTIVE) != 0) { @@ -761,16 +840,23 @@ public class BotUtils extends Plugin } if (!isRunEnabled()) { - enableRun(); + Widget runOrb = client.getWidget(WidgetInfo.MINIMAP_RUN_ORB); + if (runOrb != null) + { + enableRun(runOrb.getBounds()); + } } } } - public void enableRun() + public void enableRun(Rectangle runOrbBounds) { log.info("enabling run"); - targetMenu = new MenuEntry("Toggle Run", "", 1, 57, -1, 10485782, false); - clickRandomPointCenter(-100, 100); + executorService.submit(() -> + { + targetMenu = new MenuEntry("Toggle Run", "", 1, 57, -1, 10485782, false); + delayMouseClick(runOrbBounds, getRandomIntBetweenRange(10, 250)); + }); } //Checks if Stamina enhancement is active and if stamina potion is in inventory @@ -794,7 +880,7 @@ public class BotUtils extends Plugin { log.info("using stamina potion"); targetMenu = new MenuEntry("", "", staminaPotion.getId(), MenuOpcode.ITEM_FIRST_OPTION.getId(), staminaPotion.getIndex(), 9764864, false); - clickRandomPointCenter(-100, 100); + delayMouseClick(staminaPotion.getCanvasBounds(), getRandomIntBetweenRange(5, 200)); return true; } return false; @@ -803,7 +889,15 @@ public class BotUtils extends Plugin public void logout() { targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), -1, 11927560, false); - clickRandomPointCenter(-100, 100); + Widget logoutWidget = client.getWidget(WidgetInfo.LOGOUT_BUTTON); + if (logoutWidget != null) + { + delayMouseClick(logoutWidget.getBounds(), getRandomIntBetweenRange(5, 200)); + } + else + { + executorService.submit(() -> clickRandomPointCenter(-200, 200)); + } } /** @@ -863,6 +957,25 @@ public class BotUtils extends Plugin return null; } + public Collection getAllInventoryItemIDs() + { + Collection inventoryItems = getAllInventoryItems(); + if (inventoryItems != null) + { + Set inventoryIDs = new HashSet<>(); + for (WidgetItem item : inventoryItems) + { + if (inventoryIDs.contains(item.getId())) + { + continue; + } + inventoryIDs.add(item.getId()); + } + return inventoryIDs; + } + return null; + } + public WidgetItem getInventoryWidgetItem(int id) { Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); @@ -897,29 +1010,7 @@ public class BotUtils extends Plugin return null; } - public MenuEntry getInventoryItemMenu(ItemManager itemManager, String menuOption, int opcode) - { - Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); - if (inventoryWidget != null) - { - Collection items = inventoryWidget.getWidgetItems(); - for (WidgetItem item : items) - { - String[] menuActions = itemManager.getItemDefinition(item.getId()).getInventoryActions(); - for (String action : menuActions) - { - if (action != null && action.equals(menuOption)) - { - MenuEntry menuEntry = new MenuEntry("", "", item.getId(), opcode, item.getIndex(), 9764864, false); - return menuEntry; - } - } - } - } - return null; - } - - public MenuEntry getInventoryItemMenu(ItemManager itemManager, String menuOption, int opcode, Collection ignoreIDs) + public WidgetItem getInventoryItemMenu(ItemManager itemManager, String menuOption, int opcode, Collection ignoreIDs) { Widget inventoryWidget = client.getWidget(WidgetInfo.INVENTORY); if (inventoryWidget != null) @@ -928,14 +1019,15 @@ public class BotUtils extends Plugin for (WidgetItem item : items) { if (ignoreIDs.contains(item.getId())) + { continue; + } String[] menuActions = itemManager.getItemDefinition(item.getId()).getInventoryActions(); for (String action : menuActions) { if (action != null && action.equals(menuOption)) { - MenuEntry menuEntry = new MenuEntry("", "", item.getId(), opcode, item.getIndex(), 9764864, false); - return menuEntry; + return item; } } } @@ -1075,6 +1167,14 @@ public class BotUtils extends Plugin return false; } + public void dropItem(WidgetItem item) + { + assert !client.isClientThread(); + + targetMenu = new MenuEntry("", "", item.getId(), MenuOpcode.ITEM_DROP.getId(), item.getIndex(), 9764864, false); + moveClick(item.getCanvasBounds()); + } + public void dropItems(Collection ids, boolean dropAll, int minDelayBetween, int maxDelayBetween) { if (isBankOpen() || isDepositBoxOpen()) @@ -1094,10 +1194,11 @@ public class BotUtils extends Plugin { log.info("dropping item: " + item.getId()); sleep(minDelayBetween, maxDelayBetween); - targetMenu = new MenuEntry("", "", item.getId(), MenuOpcode.ITEM_DROP.getId(), item.getIndex(), 9764864, false); - clickRandomPointCenter(-100, 100); + dropItem(item); if (!dropAll) + { break; + } } } iterating = false; @@ -1125,16 +1226,17 @@ public class BotUtils extends Plugin iterating = true; for (WidgetItem item : inventoryItems) { - if (ids.contains(item.getId())) //6512 is empty widget slot + if (ids.contains(item.getId())) { log.info("not dropping item: " + item.getId()); continue; } sleep(minDelayBetween, maxDelayBetween); - targetMenu = new MenuEntry("", "", item.getId(), MenuOpcode.ITEM_DROP.getId(), item.getIndex(), 9764864, false); - clickRandomPointCenter(-100, 100); + dropItem(item); if (!dropAll) - break; + { + break; + } } iterating = false; } @@ -1153,29 +1255,8 @@ public class BotUtils extends Plugin log.info("can't drop item, bank is open"); return; } - Collection inventoryItems = getAllInventoryItems(); - executorService.submit(() -> - { - try - { - iterating = true; - for (WidgetItem item : inventoryItems) - { - log.info("dropping item: " + item.getId()); - sleep(minDelayBetween, maxDelayBetween); - targetMenu = new MenuEntry("", "", item.getId(), MenuOpcode.ITEM_DROP.getId(), item.getIndex(), 9764864, false); - clickRandomPointCenter(-100, 100); - if (!dropAll) - break; - } - iterating = false; - } - catch (Exception e) - { - iterating = false; - e.printStackTrace(); - } - }); + Collection inventoryItems = getAllInventoryItemIDs(); + dropItems(inventoryItems, dropAll, minDelayBetween, maxDelayBetween); } /** @@ -1199,7 +1280,13 @@ public class BotUtils extends Plugin return; } targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), 11, 786434, false); //close bank - clickRandomPointCenter(-100, 100); + Widget bankCloseWidget = client.getWidget(WidgetInfo.BANK_PIN_EXIT_BUTTON); + if (bankCloseWidget != null) + { + executorService.submit(() -> handleMouseClick(bankCloseWidget.getBounds())); + return; + } + clickRandomPointCenter(-200, 200); } public int getBankMenuOpcode(int bankID) @@ -1347,17 +1434,26 @@ public class BotUtils extends Plugin { return; } - if (isDepositBoxOpen()) + executorService.submit(() -> { - targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), -1, 12582916, false); //deposit all in bank interface - clickRandomPointCenter(-100, 100); - return; - } - else - { - targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), -1, 786473, false); //deposit all in bank interface - clickRandomPointCenter(-100, 100); - } + Widget depositInventoryWidget = client.getWidget(WidgetInfo.BANK_DEPOSIT_INVENTORY); + if (isDepositBoxOpen()) + { + targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), -1, 12582916, false); //deposit all in bank interface + } + else + { + targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), -1, 786473, false); //deposit all in bank interface + } + if ((depositInventoryWidget != null)) + { + handleMouseClick(depositInventoryWidget.getBounds()); + } + else + { + clickRandomPointCenter(-200, 200); + } + }); } public void depositAllExcept(Collection ids) @@ -1378,8 +1474,8 @@ public class BotUtils extends Plugin if (!ids.contains(item.getId()) && item.getId() != 6512 && !depositedItems.contains(item.getId())) //6512 is empty widget slot { log.info("depositing item: " + item.getId()); - depositAllOfItem(item.getId()); - sleep(80, 170); + depositAllOfItem(item); + sleep(80, 200); depositedItems.add(item.getId()); } } @@ -1394,21 +1490,10 @@ public class BotUtils extends Plugin }); } - /*public void depositAllOfItem(WidgetItem itemWidget) + public void depositAllOfItem(WidgetItem item) { - if (!isBankOpen() && !isDepositBoxOpen()) - { - return; - } - boolean depositBox = isDepositBoxOpen(); - targetMenu = new MenuEntry("", "", (depositBox) ? 1 : 2, MenuOpcode.CC_OP.getId(), itemWidget.getIndex(), - (depositBox) ? 12582914 : 983043, false); - clickRandomPointCenter(-100, 100); - }*/ + assert !client.isClientThread(); - public void depositAllOfItem(int itemID) - { - WidgetItem item = getInventoryWidgetItem(itemID); if (!isBankOpen() && !isDepositBoxOpen()) { return; @@ -1416,7 +1501,7 @@ public class BotUtils extends Plugin boolean depositBox = isDepositBoxOpen(); targetMenu = new MenuEntry("", "", (depositBox) ? 1 : 2, MenuOpcode.CC_OP.getId(), item.getIndex(), (depositBox) ? 12582914 : 983043, false); - clickRandomPointCenter(-100, 100); + moveClick(item.getCanvasBounds()); } public void depositAllOfItems(Collection itemIDs) @@ -1437,7 +1522,7 @@ public class BotUtils extends Plugin if (itemIDs.contains(item.getId()) && !depositedItems.contains(item.getId())) //6512 is empty widget slot { log.info("depositing item: " + item.getId()); - depositAllOfItem(item.getId()); + depositAllOfItem(item); sleep(80, 170); depositedItems.add(item.getId()); } @@ -1455,8 +1540,11 @@ public class BotUtils extends Plugin public void withdrawAllItem(Widget bankItemWidget) { - targetMenu = new MenuEntry("Withdraw-All", "", 1, MenuOpcode.CC_OP.getId(), bankItemWidget.getIndex(), 786444, false); - clickRandomPointCenter(-100, 100); + executorService.submit(() -> + { + targetMenu = new MenuEntry("Withdraw-All", "", 1, MenuOpcode.CC_OP.getId(), bankItemWidget.getIndex(), 786444, false); + clickRandomPointCenter(-200, 200); + }); } public void withdrawAllItem(int bankItemID) @@ -1464,8 +1552,7 @@ public class BotUtils extends Plugin Widget item = getBankItemWidget(bankItemID); if (item != null) { - targetMenu = new MenuEntry("Withdraw-All", "", 1, MenuOpcode.CC_OP.getId(), item.getIndex(), 786444, false); - clickRandomPointCenter(-100, 100); + withdrawAllItem(item); } else { @@ -1475,8 +1562,11 @@ public class BotUtils extends Plugin public void withdrawItem(Widget bankItemWidget) { - targetMenu = new MenuEntry("", "", 2, MenuOpcode.CC_OP.getId(), bankItemWidget.getIndex(), 786444, false); - clickRandomPointCenter(-100, 100); + executorService.submit(() -> + { + targetMenu = new MenuEntry("", "", 2, MenuOpcode.CC_OP.getId(), bankItemWidget.getIndex(), 786444, false); + clickRandomPointCenter(-200, 200); + }); } public void withdrawItem(int bankItemID) @@ -1484,8 +1574,7 @@ public class BotUtils extends Plugin Widget item = getBankItemWidget(bankItemID); if (item != null) { - targetMenu = new MenuEntry("", "", 2, MenuOpcode.CC_OP.getId(), item.getIndex(), 786444, false); - clickRandomPointCenter(-100, 100); + withdrawItem(item); } } @@ -1668,5 +1757,4 @@ public class BotUtils extends Plugin } targetMenu = null; } - } \ No newline at end of file diff --git a/combinationrunecrafter/combinationrunecrafter.gradle.kts b/combinationrunecrafter/combinationrunecrafter.gradle.kts index b238fe7f..3a6b34da 100644 --- a/combinationrunecrafter/combinationrunecrafter.gradle.kts +++ b/combinationrunecrafter/combinationrunecrafter.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "1.0.3" +version = "1.1.0" project.extra["PluginName"] = "Combination Runecrafter Plugin" project.extra["PluginDescription"] = "Illumine - Combination Runecrafting plugin" diff --git a/combinationrunecrafter/src/main/java/net/runelite/client/plugins/combinationrunecrafter/CombinationRunecrafterPlugin.java b/combinationrunecrafter/src/main/java/net/runelite/client/plugins/combinationrunecrafter/CombinationRunecrafterPlugin.java index 95bf23cf..f297659a 100644 --- a/combinationrunecrafter/src/main/java/net/runelite/client/plugins/combinationrunecrafter/CombinationRunecrafterPlugin.java +++ b/combinationrunecrafter/src/main/java/net/runelite/client/plugins/combinationrunecrafter/CombinationRunecrafterPlugin.java @@ -31,8 +31,6 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; @@ -50,6 +48,7 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; @@ -94,9 +93,6 @@ public class CombinationRunecrafterPlugin extends Plugin @Inject private CombinationRunecrafterOverlay overlay; - @Inject - ExecutorService executorService; - MenuEntry targetMenu; Instant botTimer; Player player; @@ -114,6 +110,7 @@ public class CombinationRunecrafterPlugin extends Plugin Set DUEL_RINGS = Set.of(ItemID.RING_OF_DUELING2, ItemID.RING_OF_DUELING3, ItemID.RING_OF_DUELING4, ItemID.RING_OF_DUELING5, ItemID.RING_OF_DUELING6, ItemID.RING_OF_DUELING7, ItemID.RING_OF_DUELING8); Set BINDING_NECKLACE = Set.of(ItemID.BINDING_NECKLACE); Set STAMINA_POTIONS = Set.of(ItemID.STAMINA_POTION1, ItemID.STAMINA_POTION2, ItemID.STAMINA_POTION3, ItemID.STAMINA_POTION4); + Set TIARAS = Set.of(ItemID.FIRE_TIARA); List REQUIRED_ITEMS = new ArrayList<>(); boolean startBot; @@ -180,32 +177,30 @@ public class CombinationRunecrafterPlugin extends Plugin return; } log.info("button {} pressed!", configButtonClicked.getKey()); - switch (configButtonClicked.getKey()) + if (configButtonClicked.getKey().equals("startButton")) { - case "startButton": - if (!startBot) - { - startBot = true; - botTimer = Instant.now(); - initCounters(); - state = null; - necklaceState = null; - targetMenu = null; - setTalisman = false; - createdRuneTypeID = config.getRunecraftingType().getCreatedRuneID(); - talismanID = config.getRunecraftingType().getTalismanID(); - materialRuneID = config.getRunecraftingType().getMaterialRuneID(); - essenceTypeID = config.getEssence().getId(); - REQUIRED_ITEMS = List.of(talismanID, materialRuneID, essenceTypeID); - updatePrices(); - botTimer = Instant.now(); - overlayManager.add(overlay); - } - else - { - shutDown(); - } - break; + if (!startBot) + { + startBot = true; + botTimer = Instant.now(); + initCounters(); + state = null; + necklaceState = null; + targetMenu = null; + setTalisman = false; + createdRuneTypeID = config.getRunecraftingType().getCreatedRuneID(); + talismanID = config.getRunecraftingType().getTalismanID(); + materialRuneID = config.getRunecraftingType().getMaterialRuneID(); + essenceTypeID = config.getEssence().getId(); + REQUIRED_ITEMS = List.of(talismanID, materialRuneID, essenceTypeID); + updatePrices(); + botTimer = Instant.now(); + overlayManager.add(overlay); + } + else + { + shutDown(); + } } } @@ -325,11 +320,9 @@ public class CombinationRunecrafterPlugin extends Plugin return 0; } - private void sleepDelay() + private long sleepDelay() { - sleepLength = utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); - log.info("Sleeping for {}ms", sleepLength); - utils.sleep(sleepLength); + return utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); } private int tickDelay() @@ -339,33 +332,18 @@ public class CombinationRunecrafterPlugin extends Plugin return tickLength; } - private void handleMouseClick() + private void teleportRingOfDueling(int menuIdentifier) { - executorService.submit(() -> + targetMenu = new MenuEntry("", "", menuIdentifier, MenuOpcode.CC_OP.getId(), -1, + 25362455, false); + Widget ringWidget = client.getWidget(WidgetInfo.EQUIPMENT_RING); + if (ringWidget != null) { - try - { - sleepDelay(); - utils.clickRandomPointCenter(-100, 100); - } - catch (RuntimeException e) - { - e.printStackTrace(); - } - }); - } - - private void teleportCastleWars() - { - if (utils.isItemEquipped(DUEL_RINGS) || utils.isItemEquipped(Set.of(ItemID.RING_OF_DUELING1))) - { - targetMenu = new MenuEntry("", "", 3, MenuOpcode.CC_OP.getId(), -1, - 25362455, false); - handleMouseClick(); + utils.delayMouseClick(ringWidget.getBounds(), sleepDelay()); } else { - log.info("Need to teleport but don't have a ring of dueling"); + utils.delayClickRandomPointCenter(-200, 200, sleepDelay()); } } @@ -427,7 +405,11 @@ public class CombinationRunecrafterPlugin extends Plugin utils.handleRun(20, 30); return MOVING; } - + if (!utils.isItemEquipped(TIARAS)) + { + utils.sendGameMessage("Fire Tiara not equipped. Stopping."); + return OUT_OF_ITEM; + } mysteriousRuins = utils.findNearestGameObject(34817); //Mysterious Ruins fireAltar = utils.findNearestGameObject(ObjectID.ALTAR_34764); bankChest = utils.findNearestGameObject(ObjectID.BANK_CHEST_4483); @@ -537,37 +519,35 @@ public class CombinationRunecrafterPlugin extends Plugin case ENTER_MYSTERIOUS_RUINS: targetMenu = new MenuEntry("", "", 34817, MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), mysteriousRuins.getSceneMinLocation().getX(), mysteriousRuins.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(mysteriousRuins.getConvexHull().getBounds(), sleepDelay()); timeout = tickDelay(); break; case TELEPORT_CASTLE_WARS: - teleportCastleWars(); + teleportRingOfDueling(3); timeout = tickDelay(); break; case SET_TALISMAN: WidgetItem airTalisman = utils.getInventoryWidgetItem(talismanID); targetMenu = new MenuEntry("Use", "Use", talismanID, MenuOpcode.ITEM_USE.getId(), airTalisman.getIndex(), 9764864, false); - handleMouseClick(); + utils.delayMouseClick(airTalisman.getCanvasBounds(), sleepDelay()); setTalisman = true; break; case USE_FIRE_ALTAR: targetMenu = new MenuEntry("Use", "Air talisman -> Altar", fireAltar.getId(), MenuOpcode.ITEM_USE_ON_GAME_OBJECT.getId(), fireAltar.getSceneMinLocation().getX(), fireAltar.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(fireAltar.getConvexHull().getBounds(), sleepDelay()); timeout = tickDelay(); break; case OPEN_BANK: targetMenu = new MenuEntry("", "", bankChest.getId(), MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), bankChest.getSceneMinLocation().getX(), bankChest.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(bankChest.getConvexHull().getBounds(), sleepDelay()); timeout = tickDelay(); break; case TELEPORT_DUEL_ARENA: - targetMenu = new MenuEntry("", "", 2, MenuOpcode.CC_OP.getId(), -1, - 25362455, false); - handleMouseClick(); + teleportRingOfDueling(2); timeout = tickDelay(); break; case DEPOSIT_ALL: @@ -585,7 +565,7 @@ public class CombinationRunecrafterPlugin extends Plugin } targetMenu = new MenuEntry("", "", 9, MenuOpcode.CC_OP_LOW_PRIORITY.getId(), useableItem.getIndex(), 983043, false); - handleMouseClick(); + utils.delayMouseClick(useableItem.getCanvasBounds(), sleepDelay()); } break; case WITHDRAW_ITEM: @@ -601,6 +581,7 @@ public class CombinationRunecrafterPlugin extends Plugin utils.logout(); } startBot = false; + shutDown(); break; } beforeLoc = player.getLocalLocation(); diff --git a/magicsplasher/magicsplasher.gradle.kts b/magicsplasher/magicsplasher.gradle.kts index 261416bb..da4951b7 100644 --- a/magicsplasher/magicsplasher.gradle.kts +++ b/magicsplasher/magicsplasher.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "1.9.5" +version = "2.0.0" project.extra["PluginName"] = "Magic Splasher" project.extra["PluginDescription"] = "Illumine automated magic splasher" diff --git a/magicsplasher/src/main/java/net/runelite/client/plugins/magicsplasher/MagicSplasherPlugin.java b/magicsplasher/src/main/java/net/runelite/client/plugins/magicsplasher/MagicSplasherPlugin.java index 4a727518..3a8b96f0 100644 --- a/magicsplasher/src/main/java/net/runelite/client/plugins/magicsplasher/MagicSplasherPlugin.java +++ b/magicsplasher/src/main/java/net/runelite/client/plugins/magicsplasher/MagicSplasherPlugin.java @@ -27,7 +27,6 @@ package net.runelite.client.plugins.magicsplasher; import com.google.inject.Provides; import java.time.Instant; -import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import javax.inject.Inject; @@ -47,6 +46,8 @@ import net.runelite.api.events.ConfigButtonClicked; import net.runelite.api.events.GameTick; import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.queries.NPCQuery; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; @@ -100,7 +101,6 @@ public class MagicSplasherPlugin extends Plugin Player player; NPC splashNPC; WidgetItem targetItem; - ExecutorService executorService; int npcID = -1; int itemID = -1; @@ -121,8 +121,6 @@ public class MagicSplasherPlugin extends Plugin @Override protected void shutDown() { - if (executorService != null) - executorService.shutdown(); overlayManager.remove(overlay); startSplasher = false; selectedSpell = null; @@ -156,7 +154,6 @@ public class MagicSplasherPlugin extends Plugin botTimer = Instant.now(); state = null; targetMenu = null; - executorService = Executors.newSingleThreadExecutor(); botTimer = Instant.now(); initVals(); overlayManager.add(overlay); @@ -205,11 +202,9 @@ public class MagicSplasherPlugin extends Plugin } } - private void sleepDelay() + private long sleepDelay() { - sleepLength = utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); - log.debug("Sleeping for {}ms", sleepLength); - utils.sleep(sleepLength); + return utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); } private int tickDelay() @@ -219,26 +214,18 @@ public class MagicSplasherPlugin extends Plugin return tickLength; } - private void handleMouseClick() - { - executorService.submit(() -> - { - try - { - sleepDelay(); - utils.clickRandomPointCenter(-100, 100); - } - catch (RuntimeException e) - { - e.printStackTrace(); - } - }); - } - private void openSpellBook() { targetMenu = new MenuEntry("", "", 1, MenuOpcode.CC_OP.getId(), -1, 10551356, false); //open spellbook - handleMouseClick(); + Widget spellBookWidget = client.getWidget(WidgetInfo.SPELLBOOK); + if (spellBookWidget != null) + { + utils.delayMouseClick(spellBookWidget.getBounds(), sleepDelay()); + } + else + { + utils.delayClickRandomPointCenter(-200, 200, sleepDelay()); + } } private NPC findNPC() @@ -275,7 +262,7 @@ public class MagicSplasherPlugin extends Plugin timeout = 5 + tickDelay(); break; } - handleMouseClick(); + utils.delayMouseClick(splashNPC.getConvexHull().getBounds(), sleepDelay()); } public MagicSplasherState getState() @@ -399,10 +386,7 @@ public class MagicSplasherPlugin extends Plugin startSplasher = false; if (config.logout()) { - executorService.submit(() -> - { utils.logout(); - }); } return; } diff --git a/plugins.json b/plugins.json index a1cd69f8..f6f0127e 100644 --- a/plugins.json +++ b/plugins.json @@ -1 +1 @@ -[{"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"BotUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"botutils-plugin","releases":[{"date":"2020-07-27","sha512sum":"11B62D7C45836DC10CB66E1100AAA0183A22D2C07E73E56D70C08389B9BA80B1C87C7D305931FFFECFFD1CE5657B559152105DBC91C208807EACEDE869A0030D","version":"3.0.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-3.0.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Combination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"combinationrunecrafterplugin-plugin","releases":[{"date":"2020-07-27","sha512sum":"2F0F1289799517C95EA6A3DB6F3EA088F0AB9A560A286EF841AEB92D26A393E23242DED3068309CC2FEEFFDEFB3021F3EB4671BCF23669E224396903C07EB2D3","version":"1.0.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/combinationrunecrafter-1.0.3.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Magic Splasher","description":"Illumine automated magic splasher","id":"magicsplasher-plugin","releases":[{"date":"2020-07-27","sha512sum":"9552353CF2934BB960936994AC7D616B132FEB81B5E54DC180BE45A05DCF059347F3FD4E4FBB90EA1036E26AFD0911EEF30B011149525A14B37C64B60E23F5F9","version":"1.9.5","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/magicsplasher-1.9.5.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Power Skiller","description":"Illumine auto power skiller plugin","id":"powerskiller-plugin","releases":[{"date":"2020-07-27","sha512sum":"699582FD9FFEC687CBE6C94C719D5DE6F95B85172FF77EF268D63DC0752992248E3A01C01E63C30589F5318948334B6055A3687E1C6DB6FDD54ECD27D7E650D2","version":"3.4.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/powerskiller-3.4.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Quick Eater","description":"Illumine - auto eat food below configured HP","id":"quickeater-plugin","releases":[{"date":"2020-07-27","sha512sum":"A13C2B4EF80BD5E48D202566F6C1E44E41C2540D315F6CE3372AF09024975427C4F2615A3B437CC5A57F438919E2969264E796DF7391978CFED3EB6874D2BE4E","version":"1.9.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/quickeater-1.9.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Rooftop Agility","description":"Illumine automated rooftop agility plugin","id":"rooftopagility-plugin","releases":[{"date":"2020-07-27","sha512sum":"A0A2DED3B7C1A37DCAC862F47B2DCA4C5D22B29F1B302E7B85F1AED9C9001C9A901E8C386B4665AE1FC890EB5A8A2DE3A92F679DC99998F365FDECA3CBDFDF40","version":"2.8.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/rooftopagility-2.8.0.jar?raw=true","requires":"0.0.1"}]}] +[{"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"BotUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"botutils-plugin","releases":[{"date":"2020-07-29","sha512sum":"A3B9EA93A56AA7BD40188601B159EBDA981FBE2F17A7C336D39955709077A336608F765023A7FEB3234BC6FEACC3AA5580C758A6B790A5F3551A822CFBDDF2CB","version":"3.1.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-3.1.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Combination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"combinationrunecrafterplugin-plugin","releases":[{"date":"2020-07-29","sha512sum":"FE90ABCEC3100D97DB79C10D794F46F2BB1E82E06138469B1BF569FA499898FC71E6086EBE4D2D42215DA16326F0FA79FD80446AA2E25575E6D74930212D7EC6","version":"1.1.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/combinationrunecrafter-1.1.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Magic Splasher","description":"Illumine automated magic splasher","id":"magicsplasher-plugin","releases":[{"date":"2020-07-29","sha512sum":"321D2548E4F5769397FEEF4508A0B50814512487A92AB63938636CDD6BBE5900BA6238148B5A024D7877A49563368E9368B931D29C67C8DAB13A58D58CA421F4","version":"2.0.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/magicsplasher-2.0.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Power Skiller","description":"Illumine auto power skiller plugin","id":"powerskiller-plugin","releases":[{"date":"2020-07-29","sha512sum":"E12D4BED034D1E5A95C3F1B02927E879ACA2C5CD52E626DA02BBF83414B141E03C7DB9FC8E199862FC315CDBBE9F261104225A12AF6EFE3F771CD4C5CA457DCD","version":"3.5.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/powerskiller-3.5.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Quick Eater","description":"Illumine - auto eat food below configured HP","id":"quickeater-plugin","releases":[{"date":"2020-07-29","sha512sum":"34F7EF109BF3EFD92CB5A1FB158F38D3CF7CD296E9566D04D02C180B405EFD475F6C9D16B4D83398D49D93B4D700DA5E1537936DB993A2C2BDAD3D948A078088","version":"2.0.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/quickeater-2.0.0.jar?raw=true","requires":"0.0.1"}]}, {"projectUrl":"https://discord.gg/YUHHsE","provider":"illumine","name":"Rooftop Agility","description":"Illumine automated rooftop agility plugin","id":"rooftopagility-plugin","releases":[{"date":"2020-07-29","sha512sum":"515D0AF1FDCCD0982703D04DFE61B0E49972DE64B5C9E543F614FE2776364259AAF96876092ACF1118D6DDC4AA554BE5D3D2252E2D25DA98A68A77E6A7DCA144","version":"2.9.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/rooftopagility-2.9.0.jar?raw=true","requires":"0.0.1"}]}] diff --git a/powerskiller/powerskiller.gradle.kts b/powerskiller/powerskiller.gradle.kts index 5d5a77eb..79abf7dc 100644 --- a/powerskiller/powerskiller.gradle.kts +++ b/powerskiller/powerskiller.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "3.4.0" +version = "3.5.0" project.extra["PluginName"] = "Power Skiller" project.extra["PluginDescription"] = "Illumine auto power skiller plugin" diff --git a/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerConfiguration.java b/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerConfiguration.java index e1cde55c..cb8e6cf3 100644 --- a/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerConfiguration.java +++ b/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerConfiguration.java @@ -306,6 +306,18 @@ public interface PowerSkillerConfiguration extends Config return ""; } + @ConfigItem( + keyName = "logout", + name = "Logout when out of required IDs", + description = "Bot will logout if required items are not in inventory, e.g. fishing bait.", + position = 101, + hide = "dropInventory" + ) + default boolean logout() + { + return true; + } + @ConfigItem( keyName = "items", name = "Item IDs to drop/not drop or Bank", diff --git a/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerPlugin.java b/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerPlugin.java index 49fb2eff..00f77b36 100644 --- a/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerPlugin.java +++ b/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerPlugin.java @@ -28,10 +28,7 @@ package net.runelite.client.plugins.powerskiller; import com.google.inject.Provides; import java.time.Instant; import java.util.HashSet; -import java.util.List; import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; @@ -45,8 +42,12 @@ import net.runelite.api.MenuOpcode; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldArea; import net.runelite.api.coords.WorldPoint; -import net.runelite.api.events.*; -import net.runelite.api.widgets.WidgetInfo; +import net.runelite.api.events.GameTick; +import net.runelite.api.events.ItemContainerChanged; +import net.runelite.api.events.GameObjectDespawned; +import net.runelite.api.events.ConfigButtonClicked; +import net.runelite.api.events.NpcDefinitionChanged; +import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.events.ConfigChanged; @@ -103,7 +104,6 @@ public class PowerSkillerPlugin extends Plugin LocalPoint beforeLoc; Player player; WorldArea DENSE_ESSENCE_AREA = new WorldArea(new WorldPoint(1754, 3845, 0), new WorldPoint(1770, 3862, 0)); - private ExecutorService executorService; int timeout = 0; long sleepLength; @@ -131,8 +131,6 @@ public class PowerSkillerPlugin extends Plugin protected void shutDown() { overlayManager.remove(overlay); - if (executorService != null) - executorService.shutdown(); state = null; timeout = 0; botTimer = null; @@ -161,7 +159,6 @@ public class PowerSkillerPlugin extends Plugin state = null; targetMenu = null; botTimer = Instant.now(); - executorService = Executors.newSingleThreadExecutor(); setLocation(); getConfigValues(); overlayManager.add(overlay); @@ -231,11 +228,9 @@ public class PowerSkillerPlugin extends Plugin } } - private void sleepDelay() + private long sleepDelay() { - sleepLength = utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); - log.debug("Sleeping for {}ms", sleepLength); - utils.sleep(sleepLength); + return utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); } private int tickDelay() @@ -245,29 +240,13 @@ public class PowerSkillerPlugin extends Plugin return tickLength; } - private void handleMouseClick() - { - executorService.submit(() -> - { - try - { - sleepDelay(); - utils.clickRandomPointCenter(-100, 100); - } - catch (RuntimeException e) - { - e.printStackTrace(); - } - }); - } - private void interactNPC() { targetNPC = utils.findNearestNpcWithin(skillLocation, config.locationRadius(), objectIds); if (targetNPC != null) { targetMenu = new MenuEntry("", "", targetNPC.getIndex(), MenuOpcode.NPC_FIRST_OPTION.getId(), 0, 0, false); - handleMouseClick(); + utils.delayMouseClick(targetNPC.getConvexHull().getBounds(), sleepDelay()); } else { @@ -298,7 +277,7 @@ public class PowerSkillerPlugin extends Plugin { targetMenu = new MenuEntry("", "", targetObject.getId(), MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), targetObject.getSceneMinLocation().getX(), targetObject.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(targetObject.getConvexHull().getBounds(), sleepDelay()); } else { @@ -339,7 +318,7 @@ public class PowerSkillerPlugin extends Plugin targetMenu = new MenuEntry("", "", bank.getId(), utils.getBankMenuOpcode(bank.getId()), bank.getSceneMinLocation().getX(), bank.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(bank.getConvexHull().getBounds(), sleepDelay()); } else { @@ -397,7 +376,7 @@ public class PowerSkillerPlugin extends Plugin if (config.type() == PowerSkillerType.DENSE_ESSENCE) { return (DENSE_ESSENCE_AREA.distanceTo(client.getLocalPlayer().getWorldLocation()) == 0) ? - FIND_GAME_OBJECT: WAIT_DENSE_ESSENCE; + FIND_GAME_OBJECT : WAIT_DENSE_ESSENCE; } return (config.type() == PowerSkillerType.GAME_OBJECT) ? FIND_GAME_OBJECT : FIND_NPC; @@ -411,30 +390,30 @@ public class PowerSkillerPlugin extends Plugin player = client.getLocalPlayer(); if (client != null && player != null && startPowerSkiller && skillLocation != null) { - utils.handleRun(30, 20); state = getState(); beforeLoc = player.getLocalLocation(); switch (state) { case TIMEOUT: + utils.handleRun(30, 20); timeout--; - return; + break; case DROP_ALL: - utils.dropInventory(true,config.sleepMin(), config.sleepMax()); - return; + utils.dropInventory(true, config.sleepMin(), config.sleepMax()); + break; case DROP_EXCEPT: utils.dropAllExcept(itemIds, true, config.sleepMin(), config.sleepMax()); - return; + break; case DROP_ITEMS: utils.dropItems(itemIds, true, config.sleepMin(), config.sleepMax()); - return; + break; case FIND_GAME_OBJECT: interactObject(); - return; + break; case FIND_NPC: interactNPC(); npcMoved = false; - return; + break; case FIND_BANK: openBank(); break; @@ -447,22 +426,21 @@ public class PowerSkillerPlugin extends Plugin case DEPOSIT_ITEMS: utils.depositAllOfItems(itemIds); break; - case ANIMATING: - timeout = tickDelay(); - return; case MISSING_ITEMS: startPowerSkiller = false; utils.sendGameMessage("Missing required items IDs: " + requiredIds.toString() + " from inventory. Stopping."); - return; + if (config.logout()) + { + utils.logout(); + } + break; + case ANIMATING: case MOVING: - timeout = 2 + tickDelay(); - return; + utils.handleRun(30, 20); + timeout = tickDelay(); + break; } } - else - { - return; - } } @Subscribe @@ -483,7 +461,7 @@ public class PowerSkillerPlugin extends Plugin { log.debug("MenuEntry string event: " + targetMenu.toString()); event.setMenuEntry(targetMenu); - timeout = 2 + tickDelay(); + timeout = tickDelay(); targetMenu = null; //this allow the player to interact with the client without their clicks being overridden } } @@ -540,7 +518,8 @@ public class PowerSkillerPlugin extends Plugin { itemIds.addAll(requiredIds); } - if (utils.inventoryContainsExcept(itemIds)) { + if (utils.inventoryContainsExcept(itemIds)) + { utils.dropAllExcept(itemIds, false, config.sleepMin(), config.sleepMax()); } return; diff --git a/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerState.java b/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerState.java index d165c969..71ff4bd9 100644 --- a/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerState.java +++ b/powerskiller/src/main/java/net/runelite/client/plugins/powerskiller/PowerSkillerState.java @@ -11,7 +11,6 @@ public enum PowerSkillerState DROP_EXCEPT, DROP_ITEMS, FIND_BANK, - FIND_DENSE_ESSENCE, FIND_GAME_OBJECT, FIND_NPC, INVALID_DROP_IDS, diff --git a/quickeater/quickeater.gradle.kts b/quickeater/quickeater.gradle.kts index a6fce1d4..68714603 100644 --- a/quickeater/quickeater.gradle.kts +++ b/quickeater/quickeater.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "1.9.0" +version = "2.0.0" project.extra["PluginName"] = "Quick Eater" project.extra["PluginDescription"] = "Illumine - auto eat food below configured HP" diff --git a/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java b/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java index 7807e5a9..5ea3089c 100644 --- a/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java +++ b/quickeater/src/main/java/net/runelite/client/plugins/quickeater/QuickEaterPlugin.java @@ -26,7 +26,6 @@ package net.runelite.client.plugins.quickeater; import com.google.inject.Provides; -import java.util.List; import java.util.Set; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; @@ -37,11 +36,9 @@ import net.runelite.api.MenuEntry; import net.runelite.api.MenuOpcode; import net.runelite.api.Player; import net.runelite.api.Skill; -import net.runelite.api.TileObject; import net.runelite.api.events.GameTick; import net.runelite.api.events.HitsplatApplied; import net.runelite.api.events.MenuOptionClicked; -import net.runelite.api.queries.GameObjectQuery; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; @@ -84,8 +81,7 @@ public class QuickEaterPlugin extends Plugin MenuEntry targetMenu; Player player; - private Set DRINK_SET = Set.of(ItemID.JUG_OF_WINE, ItemID.SARADOMIN_BREW1, ItemID.SARADOMIN_BREW2, - ItemID.SARADOMIN_BREW3, ItemID.SARADOMIN_BREW4); + private Set DRINK_SET = Set.of(ItemID.JUG_OF_WINE, ItemID.SARADOMIN_BREW1, ItemID.SARADOMIN_BREW2, ItemID.SARADOMIN_BREW3, ItemID.SARADOMIN_BREW4); private int timeout; private int drinkEnergy; @@ -142,21 +138,24 @@ public class QuickEaterPlugin extends Plugin { return; } - if (utils.getInventoryItemMenu(itemManager, "Eat", 33, - Set.of(ItemID.DWARVEN_ROCK_CAKE, ItemID.DWARVEN_ROCK_CAKE_7510)) != null) + WidgetItem eatItem = utils.getInventoryItemMenu(itemManager, "Eat", 33, + Set.of(ItemID.DWARVEN_ROCK_CAKE, ItemID.DWARVEN_ROCK_CAKE_7510)); + if (eatItem != null) { - targetMenu = utils.getInventoryItemMenu(itemManager, "Eat", 33); - utils.clickRandomPointCenter(-100, 100); + targetMenu = new MenuEntry("", "", eatItem.getId(), MenuOpcode.ITEM_FIRST_OPTION.getId(), eatItem.getIndex(), + 9764864, false); + utils.delayMouseClick(eatItem.getCanvasBounds(),utils.getRandomIntBetweenRange(5, 300)); return; } if (utils.inventoryContains(DRINK_SET)) { - WidgetItem item = utils.getInventoryWidgetItem(DRINK_SET); - targetMenu = new MenuEntry("", "", item.getId(), MenuOpcode.ITEM_FIRST_OPTION.getId(), item.getIndex(), 9764864, false); - utils.clickRandomPointCenter(-100, 100); + WidgetItem drinkItem = utils.getInventoryWidgetItem(DRINK_SET); + targetMenu = new MenuEntry("", "", drinkItem.getId(), MenuOpcode.ITEM_FIRST_OPTION.getId(), drinkItem.getIndex(), + 9764864, false); + utils.delayMouseClick(drinkItem.getCanvasBounds(),utils.getRandomIntBetweenRange(5, 300)); return; } - utils.sendGameMessage("Health is below theshold but we're out of food"); + utils.sendGameMessage("Health is below threshold but we're out of food"); } @Subscribe diff --git a/release/botutils-3.0.0.jar b/release/botutils-3.0.0.jar deleted file mode 100644 index 4f0e5a489dd4bc1c189f78896bd88ec543757463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32959 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%0A6a_s_VY7AA0Hn?lvbR^4z%+EbDh#M>EAl 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

D}E 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 literal 0 HcmV?d00001 diff --git a/release/combinationrunecrafter-1.0.3.jar b/release/combinationrunecrafter-1.0.3.jar deleted file mode 100644 index 57a55310a1da4509a1959ef2067492273c295b1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19920 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 z&84On J5E)LR`wACEpV>QF*s*u49@9j)*QBJ$AJn5- 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 YX9B!gfxQd{27Vx%!pgv)<^kdX0DpcirvLx| diff --git a/release/combinationrunecrafter-1.1.0.jar b/release/combinationrunecrafter-1.1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..ff5759d7a9baf5e5e1607b9f55624e78a8f3291d GIT binary patch literal 19679 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 literal 0 HcmV?d00001 diff --git a/release/magicsplasher-1.9.5.jar b/release/magicsplasher-1.9.5.jar deleted file mode 100644 index 63ad0a5bc4da9ff7f793cd03b0cd10c0505245c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15104 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 diff --git a/release/magicsplasher-2.0.0.jar b/release/magicsplasher-2.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..87b0586f2b067d7bad00ce52893d5b9bfba3ad35 GIT binary patch literal 14837 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 YC=2^*3=RQ-`s>s1E5up3{`mF(0smcsGXMYp literal 0 HcmV?d00001 diff --git a/release/powerskiller-3.4.0.jar b/release/powerskiller-3.4.0.jar deleted file mode 100644 index 7e98810d055b14295179fe5fe7aac47d0ee57010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16983 zcmbum19&Cfwl*5uHdkz09XsjRw#|-hb?lC9+fK)}J7&lE^PRoV{`UU{#Wg$9AIWY!MAccQv zSYxwo8u!`Y@^eS~=Z3OEa*|@AO3L)IVmdLsFad%{A(sJ{j10MGE~`c!$S6U%?I(J0 zHud9Eww*qPhCBB!sUI0ds9i!v4nhj9hUQwfHx-R1Q#XO_jvt|?y>V`riu}u(L4ESx z*EaSH1W0hv+q6)H2VatNPQmp*UugEpU=R=-Py#}$->UoiQdB4T}jnmeo~rF zidIrqQKC#4%AVzV_h3w#Zia?>QhIWfR&qglYE)*DW`<^jN_KjJW|3xuL7t9!YHDIs zl5Q3j$RU6@6Q~A6m;Nsf{AB!xr@=md+nPB4Urzq#Ht>IM$nI{jNds{a>TdpkE1M<*)_Yikq7{|hLvWG;sdBaP&sj22M_ss#;EX;^_QFl8XyVSOJv-7g)o| zcos{lJ><2!`Z~0WBgv$d)|rA6XL44}l`CnJGSvmLP|!OB3HFi^kUk)Tpo6d~c@czh zggvAxuRyx)d%?Tjd?`B7WakkbS48K|IZj=d>(9=<4>|H5QX*<6i9XLKNE&zbz|T)a zo$}pSx%F>%LIU5GA34kcs+_0X-0F+Q?xg^ zx{gz9erMxTR_smc>Zs(2Iz?vBKjrR7s#&Blv`cw%>$%~g9|S+ObyEe}>$FzE-MH1N zhhrc+k=8WcbXs9#Y1_JMF6{H6Q-^f#cyzHd7qzsIimnjtljfpp#P~lincT+c1O{e5 zakcJBX<#~qsagME(|{WHFB3113|EdQ>!xy6iAbmxU3kD#3n5|UB)2=87u-NZKl9|= zfONMRX#Q?ir%`i!rmM@arYl<4%*SQ|1eNoE;Y+}2HxoPsjM-38`=*bUnMVe6Zx7K& ziCrrHpej9MufPy$Yb?rBB4INl0f;EO}lO|UGXZNli}2F zdh-j8NgXpUSprvGQOelJ@K%b&Bxn5X97b@2^Tj9wS{HmpEgGvgd$YSiaB;k55oHdHx1o6MC$Jt?+?tI{SSz*wMI{lAXOrC~7{_#l)o$jdt(Ji;hQU?G<4y19PEeMNsa4X(dx5Oh&5pDaHnqgR{p{ad~ zSwO^#m*}F+RMY-SZh8LMk|n$KWu49F!y=Q!%ELUI@9oYY;|{y(GP)7V*R?&2=xMK( zTR(WznLAveih#w0ra)dEe?7<>Q2rl}^zOX=4TP-N-(r?LgnP9j>hm=FoamfWMUOSu zfNs&hQEr#^fl#=5IdkbYvql?b5+`>x3ZHQ??F~CI&rcLBio_YF#wpNteZ#H==O%7K zuQH~wEfEdpcIspR9yF$Be<&!8?XT2PaaX!49oaI2sdbWU@L)`7FvA}UzHa1CGM8(W%xkZMr= zF)#qp0!|In42$a@8fq_am%@tKoAD1JBkfy4Z8~C!Yg){HhKL#H+*gZ&Je4g*2-a`1B%nxt7_n)q3+B8Xv zTZ4I2r}G2n#+07hJb1V2kApv+2=;AtTO7RJcV;IlpH}ikm-vUjkHxM9&QIIj0$;2u zz4Ay1JNt!ru=UcwGJIqUYzsth(^SB43CrhiTUN3 zgij-vp>`iIPP#ve)p~U7jN#b?-&PFonb0WqbXf|*CtD2b90GRle+&rA2Aw3w@P>`dCW8y>+?npycOEaHR+Qs;1#c zCaV;&o+0|aK|iuWt0UXj0+L-_sNo50AXEDk8Jmbdk?`izZOjmGrYYshMx5c3S-~Lv zaN;vsB=qoA%9W4Ut2L6Op{QWYj8Pk4?CGRDfTd?yvl>tjPbVXFMn^l zuJ?{!?%xP(_v*B04MFm$2Oy3<)_0tme$7<|%iy+fpVDEHzZfA7{n z{@(F{?kA`a4nY(HM0x)7BlWgV;uz+22SOZk9|;V-*1*o$+nT;TM8?*OyA~y=*hA^s z@BQH})3*m#7=mtg)u`plo5T$9%QbYh(p|eA7i;WCNL3nwut|F<7cq~GWypm&F)=7{;E4`S!M6#yX zW?_boetPd1x^kfowXFYbt@1)qIK*;DxHG0Q!$B@D15~y82lokDsa|zPTYdaaOwY%i zt0qAgp00|GnLV2ZQ?!9;yRBu`iAcAp_`HuWsuz|@^m$q3t%L3C0oN%(_Ru_s3|_peuIUf7j*;3+zRnbnKk+$iUWLPa3Blt>aQ_N9On|OJ;bJVP_4dEAW!J zW%x=;ZVFZI*-7`=X=1(NQu47YfN)z9T0r@V^i{oA{z?g2p6U_Xr)v9a1Izqj!{-<~ z;0(+r;6Ih~Gt+WL@&FGvk#+|Y#wT14d9@f4!Zx2tg(?G{&z3wWNpFt>Ci`&G?wSX> zTkQ(+Rk1hc$_(7Mmj%uwT;yAXK7DiJLS$8dt_YT?EUju#9hCo!{9-C=h1!)GFX@gQ z%zKP4*i`Z|DcJM7+JY^ioq;z|l1TzFws&Tj+$1mF^_g0Vy#x5w4(W zrYfQY(}YG9NeVQ16&}Yaf7|WExv8bFIKHPc8+j?S_9oA&L7+?Uf>na24cT%@sRNM1 zazb>-t20`{2~6YJ*3^90V0W>$Fu$;Zv)N~Vv5)GV8Nbht$+de6MZSej zJ`F_y179RnJ!Gi-8^mK@=WUmb^gE{z+W zE-YbPS3;dytg7Vg<|d~G&f)e@K$Lh{)R@AfuHpGlPJP8@QKFxWUk;_lH>+ucCE=(Fm67^IOccs0aX)>N(< zAhj)orjGh5y7~jhqSDH5E;MrPv@}^{c10dHVLw!4v$O7<%&(>0FJ+&eer%iu{UFlB z2`TOdculIo;sq-iLwe=9y?L9s^t8wldBII;L9C5p*oMYtC`fQ@t49PMgwNkT)z|FW zX=o9Gb#2kG^I4^1A2Nauo3mC#MuVMW$#`XVCtlw7R|xTOr!x>6{4cSI!>4ByyvSp@ z-f`hy@`-3w*19`i_m(?Q*k!3pLeizK6RSdzxKv!EBg=BLPP{$HZrpw}#dbuZgAa|{ z`e?AihP{vaJql2w@`x>1;NS`wQj=%1 zN%cR%>i8C#_c(PkiPbwnnyM0j{~KoI+dO@U%sF#Xyo)X^1*~c=2r#V(ItFoAWGzYx zswiVQGS9V?fnH}#W;j7}r^sE)eWCmJtN0z5XXbbHyyP=_4>*()U|fVv#3!E#{+KcA zX*XQcuhZYaoUjn|4-F>nCwT&%$n-;F^78G#V7bf22}DfvP7E?P){eNNoIF|7QxjPt zoWvb;&Fobmj=XHU@av|15y!kELuyl<=uT+v>Bz`6b;a-^#cMND)r`|Xhid^#tVkQ4LiS4GGmr#UOL7@cVhg^U}eEAL{)n zWi0AmKpZp1S(gEd+Nr&w9lmg<&!&5d&-lHA*sE?#OFt>*rlA(iYW$~-YaGy09@$N5 zR+cDJGnmb%Y~5`;+w=!YwK!d@9DYfu*|s=>X(2#kIgV(H_W)T!Gg?7mSSd!sDulv9 zub)B{U>b1%?`X1aLs<80w17d*go*!*LN)JIGA}%O#ZV1ryxse%8tvKyjb8zobq3>H zOWBqdGoC7Bgv)nkc~^IeY`|fN+a8>~0BP=x=~@$L3>|8sgP~wlQ;;3u6QG6P4xu>U zzFMR6lTolKr)Mr~E)zCTq>bRf=Tee+g)C1tfIjaF$sBgHT!LTU3JR0v4Q&%|XdF33;o&BY{Z`622vRF7biBi1>3U6=ao)%y3U3tTGM9b*_lgjZ zui;+iy5#AxGas?te@P=gYAX(3d}eH?!GVB;|I-Ln;lEOR0H(i%sD+6uwsV4LAs-gP znFY{6b!cO9@D0`mTbjwNE?UB8BAjRd`iN8Y%HHMg=RI^Nyg;9CD6nShFHpomU~1aL z#JZ3UF&QKA+aUgEA0JPqTr5t^xA#Xcu|P3<-Uw?oe33qICR7R7ZW7C*HIXK%CP5|~ z;{?f_v@hxp^-1aoHF(BcfSsD4A0QFd>#ihLLM)gj(=q$G2P;*mD|H9lO_-yRwpN?h zUp!{IZ6J5xhh5GEt5~q4^+imLVehn6z?qF$$DQ(7Ksx(LSwKo7whE@uRfg;D7bm%R z%u}7{8}HP1X6`hDjAuJzL9}634!5uRZgiM@bsenN7I5zH zn2f=AEebMfK;J<4VIdF&z?8s z(XDM%{zTti4sVLfK~HL<^hhcKqqtpyXZD|Jz1t??V&=X`Zw%m6)=^5feWr{y#2Yxx z*1gC#cy#OXF@}ej|2pAA$WwoL{mg`;eJ+Lku^RIKltlmUg!sQCwf{L6{kPlc@AEw# zNO$FhSr!TtjttxcT7SSiIB8M5UjU^(0068y3m}$ITtCxIfX&!2fz`i^F#KKW$3G}` z1|mg7WH`84`+GCz+549g?Z-r`n{ZxJy zb?)TIy%zP6!E0^KueI1&7|wZ?L!uZB`ml)2>56;3gQYEC8@%hLVu(w+*$*1_RL^u+ zJ-NYc#PrG6;p451eE}4?V}ph)uf{{DlkN%F@`usI_70ZR1v?fPy!g}GbJMJQ8r~Bt zyxuX`(`*XyHcCZ=$L9w zwds*;+7$DM_J9SGG&_owcU5W4oHm>docESSyqwVP4r7#-+#^&s0DGDBYO z?x1$7BQ@-4SDVTmh#bZGkhZl7wF@A_1{A0U8Q9IY=`YyV_~hO_AatLO;gNkL3Um+i z=gSO;-Tu+B!$hz)s6`+@*xT~mfWNnrg6Y!ZG@;UQYNw{;vFNN3<7D^kf?gv)Q@X@j4fOUW0@EtV*n`Z4ZeD3^_PSrE0G;6cgeafO!vCyUR$T@L0Z|F8za6o#- z6wNuRc0C8>(s#Lg2s5WZ*P@fuc}`x0HkL02+ECB=vk}XU9U7r{E86o%*Y~xN7H$HU z%nO&UnMf-HgfDTbmbA2$r*-~=MuLH>M8vz&Bw$B~xG@=yj6(<;1*2hh(?I2I_ameooT z5MOks59F$sE@6_UuAeumJgdormu2c^B)-UKA2XOVC5fhkC6|z37O<8_cKCb;`VF2q z?GkE0{t{LP#}xB0KTf4-Tv<_OQ=+N9@KZrWOR=%WTUCXt5BM9Y&V?F&1DlRc9=EVi zb+^zx!(8S-yCU~5+I`x(skp7_iSl1?90olHSZh1v@G^1gJjy8 z1hB^SaB{?rZyqz*08aEELaB`_It9)rOvUUa3F`2gk;BMvPb%c9DJ!F%OXpV&NG^fY z;||z%*HZCuKuT}FX5$Xkbn2D_V&T8*X(mb0Z4==N4^zl5@@m#ZO{n<@p?)z8UMgg! zP8Y9)Z)7Wf7t^IY$EhtC-C1g}gCmE~Vhivd&_i|6i7kA7=^STG(KNtf(R=U0jScvS z-ogEPe%JK9$-R@#md)Da)TLs%Ee$|u_7djgzo<|%+n%XR679UuS}?T3Qo_`8I@2o$ z4<4v1->FCDi5fn<{~Jx%1v?L$GFnGIrl(cJMb?o0&g~&n5UW$qUS=04=rJj&Jzdy; zHblXx=VU2eBYCd>Sgj#JVf6NS8J~Ynowimkfu(chy=CoKy-wm;J+U9(P&^$+AyBd3 zC|*jXRO&PnrJx<#21T7`jTHyFTpL2jrF8+vjxtw@8HuruxNK`@UY3+lwbT>D61{e) zzl@)^Tc4q*Q4cGC-w?&aI1748In+!t(Drn^4Rl4%%I@J=84(naWtsdvO)jpU+<|Cg z_S7H~=iocSnND_JB!CAc(D7-cvzpxh)^quJ=_&OX*`Ma*t$?8XAYSyPR+m~PY4*Ei z&yo7YN@U-F1_R=S4%_ZI5#h;woS<@9-W?zj(*p6hh`VjD3{rYWS=?RERn#76~nbWv>>q~w*FJIdceN?GN}PZqz0 z6!zlY@O;jvGliH%27mxqZR79xmBa}Y|53G+LozN7VvmQf3rn^+S+xRBzq z6M9&!rXCX$69v*SHHh*$g#3!vwf_Y@01zL+m&vup9WiZ*nw$k%IkR;uiIy;Tio0!= z)FGhzzEVUunto_b+|T9^k72&ROE<`_Nq>5vTW!TU2q&~M2PZhl9+42?A~DDg9bu5U zt>neBtaG_2L6e3I&vL%7@UVIkbr{G;2qD_z=P0`a8C2@K#gHM=MFJy|2g1;A3$E+0CYvvT zJZRVeqSuo`u9zS8^-;xtY1;*y-wzSp9dT1_TkBEI|8j>X5$i`-?NzxXUPYMj0B7A= ztr?YJ2dA?Cus&um$K}jIwIPaWt<^54;P3i~RN5GY zZG877z!;iCL8>9jK}0GwHQEHAf-w+AQF6qPWKTg91PgjZf<;n)R@J z%z;({&Ko0JY1_g*ZmwlY>ltz&%5xU;~qa zs}hyPo}ImdKQFHqN_thRY2vbJc?Y7L6R)WID3YoB7(gPRm?z@Yi+Z%K*!yxfZ;2Dt ztHRJzO;9K(cSRf$NaTt-3(!R7{41iCsH0TZ?oJze?4#|?4m0?Z;tuTlBRU}iWH0bW2o5}-EQ4`>X z-zBw6!Xh8PV6wzppWRz?XEN#<`)UJc^jFu>rVfxrv?L7(X%7W;Wk%9SL|y@G-vT3P zN@=Qg7Z-LZMJvb+FsD;P!78|u+6Pem#>=OHtqb7x!>qc;IT1FbcJNXYANUF?s z)Q89I^mo@sDl@PiCgIL7E~+rkVIGcX*2gy1+#g(RH-zZ$0)){WDBLc0cWvn}b__u; zmnqq)c6Bc{#YIpuS{Hi7c2FOck+lX?!ENAjm8_KpTvvsDcjzJW41h)~OM)X922UOu zVp*LBYV!gJR0l|R4N!8#CwG}d&ro6$Q|H}vR!J5k!rVnT8M5_@P9Y|1Y!mQa+qRbq zzP5d#E>Fzyu5O+r$8Xf&wLp=l+O@cjlH@H9J4(%+jx>_l1sCn0)MXA&L9flIeuA0X zSINiH#O_@hQ0*&rGph_+(%__ci$0qGY$^<77 zoj{!$A8`7`?-0tPsj*lxKYFA@PH!z7#}?2B48*4&FyeknSFhQyPbi~c)_1*k zX~A{V&Ehe4ayhlU60)8wZ42YXeJLat6^~u*-OoGhbJ1QP#KOym+cVwJ2EGyDE>d)! zlvu~Mb@>Sma?T?Sh(qolq>$vcy&w>o+Lg*qi{z`zw9TudU(Rq~i;uwj9!-(NW_v_(#KZ>s zsW;25#U5{7nwrN?trDbd5aKn)zF#srDOVPA0O*74`=uTiCD>nD}k(B+@eU9m9y1t(7kdtF<+me9?C~@Nb7Y6a&v;g%Y(N%-D zyID)YG^=zzBkPSa8lf2(GXqo13G?Ej1P8?J-H1Nc%LGAeP15?&8tg9bl;%MDF5i3I z9sf*ZNzBimZdJ|AZgT-u7Hu*n8onTThwRbzJOF{s0A1RF2BdE0TdS1M&j0v|NRJQ@IDQ z#VclPtn?M-b`47lLvM~K8@-18HKRS~zimFEk&~x9Xm#Hj{A@LyNh@$u$wRv}VA)Tq z(ZT_cuFNV-cahQRV*At0m**$fVcpMF<{e0Q?5-z;v7o?OzC`(oCx>wK*F*T#LMY*f$}|R=tJl;!D4) z+`GU(3U^1G<_XJLqTR04@nsN82r!*;#o)mx?*QW)=GCQT8M4Dg=C4Tv zNg@(?MyB66#(vWzVldir)Ib_KW3oS6uswu8XyOe`Re)P|i~|Y+Ju!2z)X4XG(%Z;A z^fmWWEr^T0yU20rbYzSaUnzB5D;rg1s;E^b@~W`+Cr#8Wv42-vqrn_g^dieMoyp+N z#*<9)YG}GTf=d~S&sMUzdkA;8rWaBL2uq1X0Z?&tJWX2#HOG@~G`*sQmeJng-7sD< z3cUHoOUJC#tH84=*%0&y@N+Qv`Q?{Rc!i5^4PCeyQPYfs~?IX9Z28TBO|+}=-R zqS~<12XVR}Tt*%d-e7a3)($7>LWEA;%Nmw4I#l48wF3 zsaWcRGa2_A`%huxH)KCXAJ`GEivc(zZR6 zq?LqkA*;Bo>Giue(99fDI`JCb^!%?p!D^yCU#^p4v!BnDFHWeDDp{cdGIxwr1`asK z#+JX%;@ed7ZkqY)4ET3t6nwU9?sz!6WiOKx=S)*@^erNI&uTU82a-1UhBFWCe_ggy zC4_mdVslJhUfYGr?2?Ll)AB1_>H7%3XA2nq zvV>QMoh|5IqR5rxg!8Qd<#vCciaR8UE3S@01-frie17U?EhSv}y%~^QkB-pXE|e&# zq#G-Vuc6~aI1l&)9) z-R}y}m{{r~6~hNVeTU_Rk$uYaz}xZD25wu_y>xhayrzBlGbCFeIMoeYGI@jOpgL{d zw$bPYy&QYybJtrW>==0GtH3J1*} zcgPQsy!UG=gwJD^DH=ZLBk22l_t%7OB$RgMGVq0D5-Ux}J1?YJc9C52aUB{!kpFWT zBbcSj4&9A43Au=^4j?vfYshw6E>;K%-ah;_etdaZvfQJp^on1iSWgVncq(tT4Hm76 zJ5S&Xv26%#mc%?x&!FIisZ+f0_*Wj{l;jOasTPBH_#tv3Lnq1tMGpi6NBXcbZFe3qdK)5}Vau1n;Y*Z$E%Ao#Mfl;g^3ONF>|ET%wNkpJIWjwhm zrb`de={5pZ9R>=AZ9v|l0V{I{sx@>^G>)R`Ixy*lema6l0+=qZ8{W8Xt&1@vUJXP7 z%2>#lh95*=(JMt{RZ=GgIU4y*B^g)A2+cYSB(qRcU&*9C-I-tDaS9=sNpGfWz6K4+n*_gnCJJz$z=|E0`M`sg{xcxCBE0)&sX>~g$&4WQ99%kIV#FC}zWp1%zXUCPFYuN8B5YbPO?~KnXvzP4egD|SpZ$q<}+j5*>d7wis zeeS>_n<^9g!aN26$0WWD7mQNq2r12$;RrHGpt2nnUyYR`ATMJG9Mw~V#Y6$=xHBq= zMyjG3yvWarlH2CY@J%Q`nox}{iya|(1<604-Qy;1gpDT%dX3%D5dA1>v9kLtjOR(u z22YT0nebl>+Ilzr^@$${#?EA=rR(8%>=9dh{Np!LGm&R5-PF}ex@r*V&a*l;pfzT* z;)K15SGyD}0jd5v$}n71G_8fb`>8{TH0i=sW>l?ND*NvF7~6eVuyJ55p~*zPT^vOph4{o$pZgEYV#5#ZqU!e;E29|U#ixJ(QPIE#6JXX0W@H=>68EO%< z1sJ55;?lRCc6*|y9_W4G^3hYa_^k|ieujvf0IZ}$p)>zqJ_7_+U`HzY38$u*Vv=lp zv^^|+@Lnwr$}LQZqZ*yqmRQ}IIOQuaE?Ei;gQ+|7&OI}VdivjouB|wuw5zi+?MPcU zDHH19B~f1`mjusb#8Q4)D0Y|zBicc6;PgkY?1&`}SRELPSxs$M+D8poTxB84JWH~D z_`ml0O3e61F`3Q5(IN!H;R&`RjPD~pK=6y>OiUUVE4RQO)}5xCK_w!rlJvexttA@K zr(m~gyMirqYnJoy?YV-woE@FE{RD<(@2{QbcEv&fh`0JN8HHkcVuH^ElZ862Et zVu4y>HToh!r4zKz^R-zR7M!Az$Ah;1BR(q^8pqU(js4nZd_8Ca6k^_`CjtKXH7WZx zc+io6!?~Xe5+Yunj);K=IW+!tMV}z%OtdPI$l&MIPS8y*lz%rHl($cwoH~b6r41i; z5W-bM|F-VP#ReR|<&&$B2kpwYtePa?$M7>xjvhmdD2vcGM$*W%TA9#RZJgh>5N19JO<0)O}1!L_|2 z;aO_GqY5ieA85JuL^OUiFLmkDWV8uD?I8Y5l`r) z3Eis+NL3b9PL&&8+mXq{77lhYD$x%p$XxG7Wj-0}Cwbj8rQE`M<33WxJP#lxrKL@H z-J|MU06xM9_E1Ml@lT*#yyey}gk$-!jw@OPQbRD|&Purq#BN={GZErwP2$9b7&G)_ z92gVLMB@ba#vzQ4K;f3(t~gt>r4Ql25Dj5%uozCVp_MOnlu>1blg&`-NvKUk)kZzm z-pDBSy8zRXXF9iY78tVvVWrV%uhP?T+(?)I(BQqDaGbzsp}KYYzqCa zFNtbc6z_p1eKHwUQRsx4_9_)WqoRc_1^a<%LV!%fUfO!J@o5;Xh)qx{Y(w{DYfOcs zNVTO+A3a+c%;4vpMPub9E`EveY~w(mXhKs(b*x`a-_L}fN-$T)N*$ImW`h+W zt6=%jp{1Db2V)A;wT<4oZ@b_18fwE3!1chu^?J16sqR4Avt@%V?NZs(WJ9>^Vx!4r zfwy1dJt9p9%E#Yfsu{5B2K~4~q3xHZN^Ju(+dklgtnS$>b>051C|O+pBY_|8xwr_Q z-CaWL`7!8SNtP4DF~a0KneWVf$-`$y>tPSid=iMAD2rcMht`!`Z7j&O4LlRoCVH3{AKcj3b0FP)$NfQFUz>H4 zR3h7gcXJ%FB#5IcO>oMM6}qI<(i&6K=Fj{iV@Iq5+_ukk*}u6D)Sagz+O3Dj9rLWW zeTQRRaOFu%qysbYia(-^!-(3p*Lgicbv>lDC5!e2fftIf=ZiPe@Sdwp1*u{*=C10atXUcyLN46huo+FJP3!jhtUSTK^7jVR#v7* zTzs*OtT08GXTg)|_Ho?`ABo)b4VuT%_46EBQKKp1Nj7c~bHSWhIF_W#6DPS!tCaBZ zMl%ZHMD6h=Cc9f)HE3n=BjTfxbRB4C^@aJkWJ=u; z#W}3@O;&NHEspseHn}oSgwtMc1e6F6s}aGWKr?;;2z5#L&ycV|G$uev`Hb+&V4P#ln$ZX8_*nY9J8mc`lXeKU|SaPXNwCNUMI0J;#+5_&&t_-%A7>3;D zAI^F5%i3+C;be>%E|3*}5dTQ%!fbXM&l81!LsrG2uFDmK3xbJ<|4xF55!SnnA-p5P zgr^FFTY*WMr?cN{$^@f}@x+9-iJy06n}4+&cFO_puecW}!EP9qN&L9631$8zWat3N zw^>^0n@vbL=mmwU8tMk&G9{e@H<>C=+kT+0LjFBPff0#1a-IOWLS`D8P>BFwmzY!T zV)6t^|NW{B&wcab1Oykd%N zo{W%0pK#%sOxzM4EVMfozB{LmTRv*`4=6@x3dk!c+Kf=~-6SCFhSFPLP<8+B)T;3| z8FFhV(9z=Cirav%3X$)|se=@|($`cL8|OFV(8h|WS8^S&muMog1_^~XzW=(k%G@np zMEj|9GX0eL2>z!_t4huW&L)2^Q%G9-iYty3@*xTmEmsp32->vwh=%m(RmokVg5Z&4 zRT!EYbRNZ^j-klG2$X~@iV@U(=o_$ywlO&}^pt9)R(X|dBKf#+s}SEx|9eWd3Ww>9h_5m>^7tp#GAF!v0i; zDIjwb)nKNnCjJ_SOCU}Y5k0(4^7{T7=<3G&DC&mkAmbCmAP$FJf&ot=`oR{^70ifW zi>dP8N~o?V?q%pTCXTgWP&C%8hj8fDDl}wSR4X-#HlpwsG+&ax;qjCSaNrKhS87gL z55QPQH8G`sFTz&)*%?27nSAeE+mW_4GY1o3Q5naANv`%(qi~Tq7QG@`Y&vZ$qfCGq{mz(fZC)$X%k+o(O8HEf{Njj!ssh#| zfpWHrVPixmAxk>^_-3s5v>IDNr5a7+hE)Hqp{;1O4i~G(MW^N65cGIcdN~Y)KuwyA zbBZcQj=D36PycE&&7^7|vxk_+7l66j`QUSDWBLX+?~;jbp$&MHXSpI92i@k!wigqs zHhqxGdohJDXHcd7(?<%N0qQ-{1qp7SjZ6@dQJQg@VVY^0L7GXLQJR^CzJ{@ep@wOA zJwRPmT~%X|QRt($-mDB(S4qr691>(=Y~3YGj@fO}W7tKMeZqIq(R!YNRVg2}>!Emd_-#?6!nuOf9Qm(e41GM`-cdi3 zt<$#&nyh0rcisL4g`(&+>i$~ml^vm!yP-)8U1&s%^`AU1knXTKFRk%kuF zs=m$YBwZxn#9h=m6P62|R7v~}$4R&-b6%RSab7BH&vTV_Q)-i6AUF{#z*SK>$)Alb z?VOD+kIxzP!h2>;>Ocq(E1eTsrgY&tW|HEE>=cvaJZ6!ihKENoKLhcH2!-;2#Dt!I z7!S$~qzQ@(EDx#)JPopiRa`QHvNsAO$OjydyV6T@gn!0#U|}qO_xxWUAbo~FWU3(C_g-CVvfMd;S!JB zJ#<&|H+r=~r$|k>Y^D*u~8v=4+)e>Qa<2Yi4g(@VTP0YiKF5Ge8%3H^(OA9ZvzP_1Qo~#oM25<<@?1>vLtlbhFCLmqgpi>`_UC2b47YtbxfTKo)`ySHS2m$*2ur71r>! zL_9+^ERN$xF>DcGLS6vuVlplqRTE)UmbLMIU|%bZ1Q6ox>J^n_)iOrYC}zcke)+6O0tP_?{hu}2 zpFQ?-LjpSgFS+(V6xx3^`>R6xZ)QM11^$1ib^l@ZPkQaYBK%b${U^fdKO_9BUiz;f ze;9qzJ*_Q%m%0{^YP>fc%Xp?dz)BIfTF|ByBRJJUZj(0`h?|JC&Gis*lb z@P{J$PlU_=0pY*P!Tuf6A0Gb`iRRNE|KAJC{?Z%%s+Rt5-~xZ={}t@N*G~WSWd16I z`jZtA_J4CS|HS$)vZ%lE{k5$1Prh38|B&xri(LOo_}9X}KM8@b|9=twEm-|4-Cu*@ wKk2mC|3kWe3XT8D_SXmApKJ%*{~_C-k3R)zaELzu5k6nlpLciy-yi?}5Ah_T(EtDd diff --git a/release/powerskiller-3.5.0.jar b/release/powerskiller-3.5.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..2a21b037b9e33b0207050359cb051e93d75e0ac2 GIT binary patch literal 16599 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 literal 0 HcmV?d00001 diff --git a/release/quickeater-1.9.0.jar b/release/quickeater-1.9.0.jar deleted file mode 100644 index ab8cbc2133cd82cf04c7ce70e736b6458d05f260..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4777 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 O@oV+?^b06YzWpETN14O` diff --git a/release/quickeater-2.0.0.jar b/release/quickeater-2.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..cc78570387cdafbbeac53500d1d5d13bda8da3d4 GIT binary patch literal 4834 zcmbW52UHVVyM}|(oAeGUHH6SXP(%a?MSAE`Lytgcp<|&VMLI|mq!&R5y@)?87^;Y% zC}5BvAT@Lm;lgQp`0w$abth|*$y(q0e6#mt&&o5p8fOW~0RU1`005wPyaNDdetQQ1 z$c{g?AO?!U>e?!zX92o@E8G}q`I>WFuzS2S{9LG|sI9I7(Kis$Qn85ZC+`%a0jz}| zb{$^7IcE0oeJD|Q2v%OJ!CriI{OZ zYwbz52Zqsjyedd%Hkk=VbG+)PF{2Pby`+_1e$$b~LA#Sq%yf&%9#8!D;q;*H5~v;z zL;HAV{&_g|en@+S7u*fuB?7ne(>HS08PpKI30BwAQ!6(hb(h3{n(NaL9uWc!Y7An) z>SG#17|lVU5uulYTEhcE<3iv;%^_`~a?#fmgyI&81AuB?QRY)qdED-=IVU_mM%W|& zYr21~q57l7(;H#$0!P~aviRiMoB;nSwsnEqBYxe0;~z5aF5ZrCgx4?o3H%>f4{x}w zvpo!H@A+StZ!-eIsN)}B3K0OH{O>V(Cq&2z@rE110q*GS2}2%VFA-Z8n3q>k@<-_C zbq4fsL(yFBeNs>q3iv+cy;v;I&`VhflVDb2Jr2Wpic@_z$ePv(f`GkV zukXJS>yZxNopqcTY5`D86#Jxsj_y;-v1 zq7!D2p?&@a5RK12`*2TUhkJ}06gskU2SJq%&+f49?~dm7mm(EgR=t_aWkL%QhI&0@ z)x4Jvd0e@1Cz)}tsu*+b)7S4l?#9H$UF_w;(&@KU;v~6VHc+a?inCDk#4}iE*it&Q zDtSaK7Wadj+@p%U+FbNK2Ml0zmbwt9SE`+#Ss1eVcKIIHKXM9!$VKox`A(52o%txC zaWM;;(}u`j2C!Dq2~@>}ITj5s(XK+8`H1J)4uVq0%tMFpSqaaV znOE67tdm|Q=Q4WZC#hUbkAQ^ zJ@ScM4NIMse2lC<9@K7EJP2}$SpMTr>-a3#W}&NlUFQn}aK=P4JqQa>@ z?>D?bnA8Vq>>9PKeX}vE+|HIu#w28@l@9I>S`1&_ojd~Xwq4zPJ=+T~F9dQu?UbAJ zDy-Tzgi!Kbzv(roQg_m$B)j=>S(Q6sTd`^ZaqRA0TlB1tbF-d`@X?q42Rd{AVA^%1|O11mIc)j{TBvq0$SF&Tm(~zbDc4XQSBgEV6Vd3Umvmq5O zn)!i3rpnB+kvohA^C=0u8!~pU>Ab`fw@OTh`!Q@I`{4>=imEPLsxgqTQP4nBNccqc zhD!2ccLZxu=@Y8jEsk~Hm%`kj+sl-77VXa~1WWS_I#=dn_FD>yB1&6eL2uV63G~&iN%g$S{kciS21M z*4A6UuIF1T1YDX(q2@*oNAn98Z(glm@C@)qjrKSqHmI91Ofl%E1oB`u=&J2ru^Xz~ zcVW5{%$Ydow6y z0$0Pm?9zw9!U-|tY1xmnuP=Jm=~`7VY0YG_(_`LpHh#CjBjgxHTZwAY%p7W0-{BmG zTAWfyyU2|+D`$CcmEBH6()f6`SYDdX_(7qK^sUV765~_- z6BJK!px2YT?#Otr!^-f0>Rw4B%G4=hbZKlQ#Uf|=QFWkj=rV_ITd0k{rr#pf`Yrj_ z`=G<%dBcNbML$kM4U>!+Gs}SW=i~RIdbX+&Ds3}O>q+z7Qj#v)f%ewTcu~e9^d_P$ z?-S%ewF7cA%Y#L0fDSd>=+m;N;~Bs?DoXiMkGAQOHZcp%YkFe6%%y#JBj_jjIeEhb zM_TV((a?tHW=vO)o~4#Q-JOz|nvbWGw(vceGEXbB3w<)-V_~@CL2i&Sxp?OZb{tpn zLfV+)Qej^=-4&(w1J1He`(RPka-DP$P~xVX$_8g2!k2JKV3_(QDclH4L1=P~ z-P-(su$nU)n69%aUudAAG#(Bdrsrs0PYOi#UN)7pxRX+(9`pHnb%FdVre*G;+OK?! z_~Cr7FT(vk$|fT92};E5NDxyyjGzasKv7Z5cy?lXAd*1)pX1o zO>03t!(K*V$1!5fO3c|G??FB3IW91hPV>deNCNm?|Jjb>@s*{sITjr&E1VtI z<@~MfSNpDEpy^V!_bvA?n!4F9=FIYMHKsbJL#b^CIbJOX2q7X|hjava>lJ%HsvGlO z3Oy%CML}L~B!r+a9ZcxB(+m`~ZJyhgT~FcV(3&4^^lukjF93@Pj2dNNwvx&o6_W*& zY4OoSI#*P?#+`NYp$;>dOF|Av^Yzc6FdwV!I;$5R>Z2<%eR@+oMwxu)s%^5?ovgmln^@Tt}{HPH=N|TpIaWD^2-vAEtSvI z*}&JXva+Y;sWeD}zcM(6XhPqD2VNSL|GXc!=ee)v&C~0O5-pT3?<;*C;$VF9@^$ZR z7;tQEwIu$+i=ad3gh<*7_k2%1) z>W}LV*FDaRW+iLN?T)CkqI_5rIHT4Hx zu%$)TZH`#~cPjgQZX4VWV4S-~3K5+JKxp;(s>Iuw{txp_I#>+2&i876c{BSiaWbRK znt_j`Ca$=ML>KxzJiyqGvWTY++K{_m(tcI2PD#RlZwpid{F$s&2TWa4MDuB$By1Wzs3~2J>(l} z4bGL>01P%Ww`@+l^VBnWtEP`|2yWrQ;XS5fJ(5Q57VZl<6Qf$g8(buHrP0Rp5SA?y zF$WG|3Yuh26OziV7YZ)-7$G7vSnG;-V5((y%f|JV&5GTFdVRI0d8R9becQl-9hE(I z`ts_mPX`XsT~lG}T+xkY*4Rs(+dk&;avnmfodnBW;*)XoO_A+jYV74nA-!k(lhic6 zq_B10DU8&i0NFi76B&Bnb1R?KH3q`^RkfSO;$Bh^-YHgO*h>1wKZP^~VQ;H#&*>Dc zYg^A` za_J|JH$_NICvLDrCv}>Zlp061Blm>U@I(xT=I(^d*T|2e-rVD+6y+O_ZR?B7%X^v_*d+w2LPuDr!D&jVeesdF9e)-a VT@51Q6CC;RYw`H>XV0B{`yav&(O&=n literal 0 HcmV?d00001 diff --git a/release/rooftopagility-2.8.0.jar b/release/rooftopagility-2.9.0.jar similarity index 53% rename from release/rooftopagility-2.8.0.jar rename to release/rooftopagility-2.9.0.jar index eed4cfa8a9729fd7d58c2a330da1f3fa69f623c6..4a848965356725b888e2d9a386f496654327045b 100644 GIT binary patch delta 10039 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 Nhh7^7wpaiF007tBRJ{NI delta 10184 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 diff --git a/rooftopagility/rooftopagility.gradle.kts b/rooftopagility/rooftopagility.gradle.kts index 9f9829b2..92aa51b7 100644 --- a/rooftopagility/rooftopagility.gradle.kts +++ b/rooftopagility/rooftopagility.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "2.8.0" +version = "2.9.0" project.extra["PluginName"] = "Rooftop Agility" project.extra["PluginDescription"] = "Illumine automated rooftop agility plugin" diff --git a/rooftopagility/src/main/java/net/runelite/client/plugins/rooftopagility/RooftopAgilityPlugin.java b/rooftopagility/src/main/java/net/runelite/client/plugins/rooftopagility/RooftopAgilityPlugin.java index e824ec71..51fe0fe6 100644 --- a/rooftopagility/src/main/java/net/runelite/client/plugins/rooftopagility/RooftopAgilityPlugin.java +++ b/rooftopagility/src/main/java/net/runelite/client/plugins/rooftopagility/RooftopAgilityPlugin.java @@ -31,14 +31,33 @@ import java.time.Instant; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; -import net.runelite.api.*; +import net.runelite.api.Client; import net.runelite.api.coords.LocalPoint; import net.runelite.api.coords.WorldPoint; -import net.runelite.api.events.*; +import net.runelite.api.DecorativeObject; +import net.runelite.api.events.ConfigButtonClicked; +import net.runelite.api.events.ItemContainerChanged; +import net.runelite.api.events.ItemDespawned; +import net.runelite.api.events.ItemSpawned; +import net.runelite.api.events.GameTick; +import net.runelite.api.events.MenuOptionClicked; +import net.runelite.api.events.GameObjectSpawned; +import net.runelite.api.events.GameObjectDespawned; +import net.runelite.api.GameState; +import net.runelite.api.GameObject; +import net.runelite.api.GroundObject; +import net.runelite.api.ItemID; +import net.runelite.api.MenuEntry; +import net.runelite.api.MenuOpcode; +import net.runelite.api.Player; +import net.runelite.api.Skill; +import net.runelite.api.Tile; +import net.runelite.api.TileItem; +import net.runelite.api.Varbits; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; @@ -98,7 +117,7 @@ public class RooftopAgilityPlugin extends Plugin WidgetItem alchItem; GameObject priffPortal; Set inventoryItems = new HashSet<>(); - private ExecutorService executorService; + private final Set REGION_IDS = Set.of(9781, 12853, 12597, 12084, 12339, 12338, 10806, 10297, 10553, 13358, 13878, 10547, 13105, 9012, 9013, 12895, 13151); private final Set PORTAL_IDS = Set.of(36241, 36242, 36243, 36244, 36245, 36246); @@ -127,8 +146,6 @@ public class RooftopAgilityPlugin extends Plugin @Override protected void shutDown() { - if (executorService != null) - executorService.shutdown(); overlayManager.remove(overlay); markOfGraceTile = null; markOfGrace = null; @@ -164,7 +181,6 @@ public class RooftopAgilityPlugin extends Plugin startAgility = true; state = null; targetMenu = null; - executorService = Executors.newSingleThreadExecutor(); botTimer = Instant.now(); restockBank = config.bankRestock(); inventoryItems.addAll(Set.of(ItemID.NATURE_RUNE, ItemID.MARK_OF_GRACE)); @@ -200,11 +216,9 @@ public class RooftopAgilityPlugin extends Plugin } } - private void sleepDelay() + private long sleepDelay() { - sleepLength = utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); - log.debug("Sleeping for {}ms", sleepLength); - utils.sleep(sleepLength); + return utils.randomDelay(config.sleepWeightedDistribution(), config.sleepMin(), config.sleepMax(), config.sleepDeviation(), config.sleepTarget()); } private int tickDelay() @@ -214,22 +228,6 @@ public class RooftopAgilityPlugin extends Plugin return tickLength; } - private void handleMouseClick() - { - executorService.submit(() -> - { - try - { - sleepDelay(); - utils.clickRandomPointCenter(-100, 100); - } - catch (RuntimeException e) - { - e.printStackTrace(); - } - }); - } - public long getMarksPH() { Duration timeSinceStart = Duration.between(botTimer, Instant.now()); @@ -261,7 +259,15 @@ public class RooftopAgilityPlugin extends Plugin { targetMenu = new MenuEntry("Cast", "High Level Alchemy", 0, MenuOpcode.WIDGET_TYPE_2.getId(), -1, 14286887, false); - handleMouseClick(); + Widget spellWidget = client.getWidget(WidgetInfo.SPELL_HIGH_LEVEL_ALCHEMY); + if (spellWidget != null) + { + utils.delayMouseClick(spellWidget.getBounds(), sleepDelay()); + } + else + { + utils.delayClickRandomPointCenter(-200, 200, sleepDelay()); + } setHighAlch = true; } else @@ -272,7 +278,7 @@ public class RooftopAgilityPlugin extends Plugin MenuOpcode.ITEM_USE_ON_WIDGET.getId(), alchItem.getIndex(), 9764864, false); - handleMouseClick(); + utils.delayMouseClick(alchItem.getCanvasBounds(), sleepDelay()); alchTimeout = 4 + tickDelay(); } } @@ -296,7 +302,7 @@ public class RooftopAgilityPlugin extends Plugin if (client.getVarbitValue(Varbits.BANK_NOTE_FLAG.getId()) != 1) { targetMenu = new MenuEntry("Note", "", 1, MenuOpcode.CC_OP.getId(), -1, 786455, false); - handleMouseClick(); + utils.delayClickRandomPointCenter(-200, 200, sleepDelay()); return; } if ((!utils.bankContains(ItemID.NATURE_RUNE, 1) && !utils.inventoryContains(ItemID.NATURE_RUNE)) || @@ -349,7 +355,7 @@ public class RooftopAgilityPlugin extends Plugin targetMenu = new MenuEntry("", "", bankBooth.getId(), MenuOpcode.GAME_OBJECT_SECOND_OPTION.getId(), bankBooth.getSceneMinLocation().getX(), bankBooth.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(bankBooth.getConvexHull().getBounds(), sleepDelay()); timeout = tickDelay(); } } @@ -373,7 +379,7 @@ public class RooftopAgilityPlugin extends Plugin if (decObstacle != null) { targetMenu = new MenuEntry("", "", decObstacle.getId(), MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), decObstacle.getLocalLocation().getSceneX(), decObstacle.getLocalLocation().getSceneY(), false); - handleMouseClick(); + utils.delayMouseClick(decObstacle.getConvexHull().getBounds(), sleepDelay()); return; } } @@ -383,7 +389,7 @@ public class RooftopAgilityPlugin extends Plugin if (groundObstacle != null) { targetMenu = new MenuEntry("", "", groundObstacle.getId(), MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), groundObstacle.getLocalLocation().getSceneX(), groundObstacle.getLocalLocation().getSceneY(), false); - handleMouseClick(); + utils.delayMouseClick(groundObstacle.getConvexHull().getBounds(), sleepDelay()); return; } } @@ -391,7 +397,7 @@ public class RooftopAgilityPlugin extends Plugin if (objObstacle != null) { targetMenu = new MenuEntry("", "", objObstacle.getId(), MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), objObstacle.getSceneMinLocation().getX(), objObstacle.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(objObstacle.getConvexHull().getBounds(), sleepDelay()); return; } } @@ -520,7 +526,7 @@ public class RooftopAgilityPlugin extends Plugin case MARK_OF_GRACE: log.debug("Picking up mark of grace"); targetMenu = new MenuEntry("", "", ItemID.MARK_OF_GRACE, 20, markOfGraceTile.getSceneLocation().getX(), markOfGraceTile.getSceneLocation().getY(), false); - handleMouseClick(); + utils.delayClickRandomPointCenter(-200, 200, sleepDelay()); break; case FIND_OBSTACLE: findObstacle(); @@ -536,14 +542,22 @@ public class RooftopAgilityPlugin extends Plugin case CAST_CAMELOT_TELEPORT: targetMenu = new MenuEntry("", "", 2, MenuOpcode.CC_OP.getId(), -1, 14286879, false); - handleMouseClick(); + Widget spellWidget = client.getWidget(WidgetInfo.SPELL_CAMELOT_TELEPORT); + if (spellWidget != null) + { + utils.delayMouseClick(spellWidget.getBounds(), sleepDelay()); + } + else + { + utils.delayClickRandomPointCenter(-200, 200, sleepDelay()); + } timeout = 2 + tickDelay(); break; case PRIFF_PORTAL: log.info("Using Priff portal"); targetMenu = new MenuEntry("", "", priffPortal.getId(), MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId(), priffPortal.getSceneMinLocation().getX(), priffPortal.getSceneMinLocation().getY(), false); - handleMouseClick(); + utils.delayMouseClick(priffPortal.getConvexHull().getBounds(), sleepDelay()); break; } }