Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


orange451 last won the day on August 30 2015

orange451 had the most liked content!

Community Reputation

49 Excellent

About orange451

  • Rank
    Experienced Botter
  • Birthday 11/24/1995


  • Sex
  • Location
    Georgia, USA
  • Bio
    I've been a programmer for 10 years.

Recent Profile Visitors

2,828 profile views
  1. Added support for mixed types. I.e. you have a rest endpoint that takes in Strings, but produces JSON. Example: /** * Mixed types test */ server.addEndpoint(HttpMethod.GET, "/MixedTypes", String.class, JsonObject.class, (request)->{ String text = request.getBody(); JsonObject response = new JsonObject(); response.addProperty("TEST", text); return new ResponseEntity<JsonObject>(HttpStatus.OK, response); }); Output:
  2. Hey all, Latest Tribot update broke a LOT of dialog option checking, so I spent the evening writing some fallback code. Additionally fixed up a few things on Tutorial Island and Cooks Assistant. Update is live on the Repo
  3. Delete your hooks.dat file, and restart tribot. There was an error with the Banking API yesterday, but it's working now. Make sure you're on Tribot version 10.24.2
  4. Something I started working on today. Smelting is all done. Next task is smithing! Smithing GUI isn't as nice, but still just as functional!
  5. Internally this uses sockets, so it's just as lightweight. What this does for you, is make a super convenient way to listen or send specific types of data that needs to be communicated from one place to another. Manually writing all that stuff with sockets leads to a very bloated/messy project. This helps you keep it clean, and also respects HTTP protocol, so you can easily interface this with many other applications on the internet! Also, things like POJO serialization is super useful. An example would be, if you have a class that contains all of the skills for your player...
  6. I made a little website here: https://jrest.io/ Additionally, Gson is no longer a required library, but it is still optional if you wish to serialize DTO/POJO objects. I also added FORM URL ENCODED support and cookie support.
  7. Hey all, haven't updated this in awhile. I added support for Rune Mysteries. I also went through all the quests and tweaked a lot of their logic. I updated Tutorial Island to all the new interfaces, and everything seems to be working smoothly. Since updating, I've put 13 accounts through tutorial island through 9 qp (last 2 days). Enjoy!
  8. I've tested it on Draynor, Alkharid, and Varrock rooftop agility courses so far. Works flawlessly with no code change between them! All I need is 1 generic roof-top agility solver. Here's all the setup needed to add a new rooftop course: DRAYNOR_ROOFTOP_AGILITY( Locations.DRAYNOR_ROOFTOP_AGILITY_START, "Climb", "Rough wall", 10), ALKHARID_AGILITY( Locations.ALKHARID_AGILITY_START, "Climb", "Rough wall", 20), VARROCK_AGILITY(Locations.VARROCK_AGILIRT_START, "Climb", "Rough wall", 30); private SupportedLocations(Locations loc, String interact, String name, int minAgility) { ... } S
  9. Another update. You can now specify to use HTML as a MediaType in Rest Endpoints. Server: /** * Test Endpoint. Returns static String */ this.addEndpoint(HttpMethod.GET, "/", MediaType.TEXT_HTML, (request)->{ return new ResponseEntity<String>(HttpStatus.OK, "<h1>Index! Welcome to JREST!</h1>"); }); Client:
  10. Here's a small utility I've created when working on a rooftop agility script. It scans a position for all nearby walkable tiles and non-walkable tiles. Source: package scripts.util; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.tribot.api.interfaces.Positionable; import org.tribot.api2007.PathFinding; import org.tribot.api2007.Projection; import org.tribot.api2007.types.RSTile; public class AreaBounds { /** List of walkable tiles
  11. Started working on a simple Roofstop agility script today. It works by automatically scanning all possible tiles in the course: This is useful, because all I have to define is the starting location, and the starting intractable object. With no extra configurations (i think) most roof-top courses should work!
  12. Small update. I added a way to specify what type of data is expected for a given REST Endpoint. Example: Server: /** * Test Post endpoint. Returns your posted data back to you. */ this.addEndpoint(HttpMethod.POST, "/GetEmployee", JsonObject.class, (request)->{ JsonObject payload = request.getBody(); int id = payload.get("id").getAsInt(); String[] names = { "Frank", "Jeff", "Oliver", "Maxwell" }; JsonObject response = new JsonObject(); response.addProperty("id", id); response.addProperty("name", names[id-1]); return new ResponseEntity<JsonObject>(Ht
  13. Hey all, For a project I'm working on in Tribot, I found I needed to make some rest calls to a back-end server. While in the enterprise world I'd normally use Spring or some other large library, they wont work in Tribot due to their heavy use of reflection and massive startup-times. I've written a pretty light-weight REST call library and wanted to share it here for anyone interested! This library is super tiny (1 package) and starts almost instantly, so it's very bot friendly. A lot of other restful libraries take a long time to turn on, which gets in the way of starting scripts. S
  14. Hiah! If you're like me, you find yourself using DPathNavigator to traverse small and contained locations, you probably know how unreliable it can be. I was playing around with DaxWalker's API earlier, and found it has a nice method: WalkerEngine#walkPath(ArrayList<RSTile>, WalkingCondition) You can easily combine this with Tribot's PathFinding/DPathNavigator class like this: RSTile[] path = PathFinding.generatePath(Player.getPosition(), tile.getPosition(), true); if ( path != null && path.length > 0 ) { WalkerEngine.getInstance().walkPath(new ArrayList<>(Ar
  15. Here's a small snippet I wrote for my personal use. This makes querying GE items DTO friendly. public class GrandExchangeUtil { /** Internal GE data */ private static JSONObject priceData; /** Last timestamp GE data was downloaded */ private static long lastUpdateTime; /** Rate at which we refresh internally stored GE data */ public static long REFRESH_GE_TIME = 1000 * 60; /** * Force fetches all the price data for GE Items. */ public static void forceUpdateGEPriceData() { try { String address = "https://rsbuddy.com/exchange/summary.json"; URL url = new U
  • Create New...