November 9, 20178 yr So working on my 1-99 fletcher ive been looking to make it all more automated, but i haven't gotten around getting the price on X item in GE. Now im curious if its possible to get the price shown in GE itself? Example:
November 9, 20178 yr Like the price of Price Per Item: ? Isn't there a widget for it? If there is a widget, grab the filter, and filter out all unnecessary stuff out, so you only have the integer. Or do you mean this? Edited November 9, 20178 yr by Viston
November 9, 20178 yr Author 1 minute ago, Viston said: Like the price of Price Per Item: ? Isn't there a widget for it? If there is a widget, grab the filter, and filter out all unnecessary stuff out, so you only have the integer. Or do you mean this? Ye price per item, is there some snippet without json though? I remember explv saying so but i can't find the thread
November 9, 20178 yr Not mine: import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; public class Exchange { private static HashMap<Integer, Integer> cache = new HashMap<Integer, Integer>(); public static String getData(int itemID) { try { StringBuilder sb = new StringBuilder("https://api.rsbuddy.com/grandExchange?a=guidePrice&i="); sb.append(String.valueOf(itemID)); InputStream inputStream = new URL(sb.toString()).openStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while ((line = bufferedReader.readLine()) != null) { if (line.contains("{")) { sb = new StringBuilder(line); sb.deleteCharAt(0); return sb.toString(); } } } catch (Exception e) { return e.getMessage(); } return null; } public static String[] parseData(String data) { ArrayList<String> holder = new ArrayList<String>(); String[] parts = data.split(","); //Now we have strings in format "x":y for (String s : parts) { s = s.replace("\"", ""); //Remove " - now in format x:y holder.add(s.split(":")[1]); //Extract y from format x:y } String[] ret = new String[holder.size()]; return holder.toArray(ret); } public static int getPrice(int itemID) { if (itemID == 995) return 1; if (cache.containsKey(itemID)) { return cache.get(itemID); } String[] data = parseData(getData(itemID)); int price = Integer.valueOf(data[0]); cache.put(itemID, price); return price; } } Use: Item item = getInventory().getItem("Coal"); int price = Exchange.getPrice(item.getId()) Edited November 9, 20178 yr by HunterRS
November 9, 20178 yr 5 hours ago, atoo said: Ye price per item, is there some snippet without json though? I remember explv saying so but i can't find the thread That thread he linked is without the requirement of any external libraries. It even says so in the title. I would recommend using it because it allows you to lookup items using their name rather than id. I have another topic in the snippets section which does use a JSON library. Not sure why you wouldn't use it, JSON simple for example is open source and only a few classes, so you can just copy it into your project. As for getting the price in game, isn't it just a widget? If not there may be a config? Edited November 9, 20178 yr by Explv
November 9, 20178 yr Author 40 minutes ago, Explv said: That thread he linked is without the requirement of any external libraries. It even says so in the title. I would recommend using it because it allows you to lookup items using their name rather than id. I have another topic in the snippets section which does use a JSON library. Not sure why you wouldn't use it, JSON simple for example is open source and only a few classes, so you can just copy it into your project. As for getting the price in game, isn't it just a widget? If not there may be a config? Ye ill look into it when i work more on my fletcher, thanks. I'll also look into using the widget but i think using your snippet would be a lot better imo I got it working, thanks everyone for the help! Edited November 9, 20178 yr by atoo
Create an account or sign in to comment