Skip to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Gunman

Super Moderator
  • Joined

  • Last visited

Everything posted by Gunman

  1. Uninstall Java 22. Or use a terminal to specify and open OSBot with
  2. Code for using invokes with this added to my repo https://github.com/MrGunman200/OSBot-Extended/tree/master/extra/src/api/invoking
  3. Nohasa Mufasa
  4. You're not in the server
  5. Sounds like a bad proxy maybe?
  6. CS2 is a one liner, functions the same just less code. And the only reason to use a custom sleep class would be to add other functionality like a reset condition.
  7. @pupu_pot API already has a empty slots method getInventory().getEmptySlots(); Use ConditionalSleep2 at least over ConditionalSleep if not a custom sleep class. Empty wall part doesn't actually work I'm pretty sure // Wait until the amethyst turns into "Empty wall" new ConditionalSleep(240000, 2000) { // 240,000 milliseconds (4 minutes) @Override public boolean condition() throws InterruptedException { return !amethyst.exists() || amethyst.getName().equals("Empty wall"); } }.sleep(); Furthermore I recommend not using any AI assistance if you're trying to truly learn coding. If you're just slapping scripts together go for it.
  8. I still can't find you, can you try leaving and rejoining?
  9. @driedApricots RandomSolvers will interrupt the script loop, not sure why that would kill the script though. Put the code in a try catch and see if that does anything, may be related to a exception being thrown
  10. Gunman replied to CcozyD's topic in General Help
    They do, they actually recently added back the method in their API publicly https://github.com/runelite/runelite/commit/92e85beb53a0605a82f9a6ce36e1c2769cd238b3
  11. Gunman replied to CcozyD's topic in General Help
    Sales pitch I suppose You generally use it like normal scripting code, not sure what examples you wanted. Here's an example of "infinite" prayer flicking I suppose @Override public void onGameTick() { super.onGameTick(); final PrayerButton prayer = PrayerButton.THICK_SKIN; final RS2Widget widget = getPrayerWidget(prayer); final InvokeHelper ih = new InvokeHelper(this); if (widget == null) { return; } if (getPrayer().isActivated(prayer)) { ih.invoke(widget, 0); ih.invoke(widget, 0); } else { ih.invoke(widget, 0); } } private RS2Widget getPrayerWidget(PrayerButton prayer) { RS2Widget widget = getWidgets().getAll().stream() .filter(w -> w.getSpriteIndex1() == prayer.getSpriteId()) .findFirst() .orElse(null); if (widget != null) { widget = getWidgets().get(widget.getRootId(), widget.getSecondLevelId()); } return widget; }
  12. English, thanks
  13. Modern Resize >
  14. Gunman replied to Czar's topic in Agility
    Doesn't seem to matter, and if he's using my invoke helper with clicks then it sends a right click to 0, 0 with every action invoked
  15. Gunman replied to Czar's topic in Agility
    That sounds like it's using invokes my guy not the mouse
  16. They send packets with all the data yes, whether they care or use it is truly unknown
  17. Need to post your discord UID
  18. Need to post your discord UID too I can't find you in the sever
  19. Not at all an issue tbh
  20. Okay cap'n
  21. Gunman replied to mark jacobs's topic in Snippets
    It's another take on the conditional sleep class that makes it a one liner with lambdas and a reset condition. Imo I'd use the Sleep class because of the reset condition option
  22. Gunman replied to mark jacobs's topic in Snippets
    Get your code up bby not your funny up Sleep.until(()-> !script.inventory.contains("Raw salmon") || script.widgets.isVisible(233) || script.getDialogues().isPendingContinuation(), ()-> myPlayer().isAnimating(), 3_000); Sleep.class import java.util.concurrent.TimeUnit; import java.util.function.BooleanSupplier; public class Sleep { private static final int DEFAULT_POLLING = 600; private static final int DEFAULT_CYCLE_LIMIT = 100; public static void sleep(int time) { try { TimeUnit.MILLISECONDS.sleep(time); } catch (InterruptedException e) { // I don't wanna deal with Interrupted Exception handling everywhere // but I need it to reset the execution when it happens throw new IndexOutOfBoundsException("Sleep Interrupted*"); } } public static boolean until(BooleanSupplier condition, int timeout) { return until(condition, ()-> false, timeout, DEFAULT_POLLING); } public static boolean until(BooleanSupplier condition, int timeout, int polling) { return until(condition, ()-> false, timeout, polling); } public static boolean until(BooleanSupplier condition, BooleanSupplier resetCondition, int timeout) { return until(condition, resetCondition, timeout, DEFAULT_POLLING, DEFAULT_CYCLE_LIMIT); } public static boolean until(BooleanSupplier condition, BooleanSupplier resetCondition, int timeout, int polling) { return until(condition, resetCondition, timeout, polling, DEFAULT_CYCLE_LIMIT); } public static boolean until(BooleanSupplier condition, BooleanSupplier resetCondition, int timeout, int polling, int cycleLimit) { try { int resetCounter = 0; long startTime = System.currentTimeMillis(); while ((System.currentTimeMillis() - startTime) < timeout && !condition.getAsBoolean()) { if (resetCounter >= cycleLimit) { break; } else if (resetCondition.getAsBoolean()) { startTime = System.currentTimeMillis(); resetCounter ++; } Sleep.sleep(polling); } return condition.getAsBoolean(); } catch (NullPointerException e) { e.printStackTrace(); } return false; } }
  23. Need to post your discord UID too I can't find you in the server, your info provided might be wrong.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.