Juggles Posted May 15, 2016 Share Posted May 15, 2016 How would I make my combat script loot items above a certain price? I'm assuming you need to connect it to an external site that has the price of items or maybe directly connect it to the GE but I've searched the API and have failed to find something like this. 1 Quote Link to comment Share on other sites More sharing options...
Chris Posted May 16, 2016 Share Posted May 16, 2016 (edited) API package me.Sinatra.Machine.Data; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; public class GrandExchangeAPI { private static final String BASE = "https://api.rsbuddy.com/grandExchange?a=guidePrice&i="; public int getOverallPrice(int itemID) throws IOException { return parse(itemID, "overall"); } public int getBuyingPrice(int itemID) throws IOException { return parse(itemID, "buying"); } public int getSellingPrice(int itemID) throws IOException { return parse(itemID, "selling"); } private int parse(int itemID, String choice) throws IOException { URL url = new URL("https://api.rsbuddy.com/grandExchange?a=guidePrice&i=" + itemID); BufferedReader file = new BufferedReader(new InputStreamReader(url.openStream())); String price = null; String line; while ((line = file.readLine()) != null) { if (line.contains("{")) { price = line.trim(); } } if (choice.equals("buying")) { price = price.substring(price.indexOf(",") + 10, nthOccurrence(price, ',', 1)).trim(); } else if (choice.equals("selling")) { price = price.substring(nthOccurrence(price, ',', 2) + 11, price.indexOf("sellingQuantity") - 2).trim(); } else { price = price.substring(price.indexOf(":") + 1, price.indexOf(",")).trim(); } file.close(); return Integer.parseInt(price); } private int nthOccurrence(String str, char c, int n) { int pos = str.indexOf(c, 0); while ((n-- > 0) && (pos != -1)) { pos = str.indexOf(c, pos + 1); } return pos; } } Usage //in some class private GrandExchangeAPI grandExchange; //loot usage this.grandExchange = new GrandExchangeAPI(); if conditions for loot int worth = this.grandExchange.getSellingPrice(loot.getId()); if worth condition take //Simple layout..clean it up and try to use it yourself. //hope I managed to give insight Edited May 16, 2016 by Sinatra 1 Quote Link to comment Share on other sites More sharing options...