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