Joseph Posted June 18, 2014 Share Posted June 18, 2014 (edited) How to use, simply add the player into your map. Then your able to access their skills, rank, level, and exp. I have to give some credit to @Swizzbeat, because i used parts of his snippet to build mine. package dependencies.hiscores; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.util.HashMap; import java.util.Map; import org.osbot.rs07.api.ui.Skill; import org.osbot.rs07.script.Script; public class Hiscores { private Script script; private static final String URL_BASE = "http://services.runescape.com/m=hiscore_oldschool/hiscorepersonal.ws?user1="; public Map<String, Map<Skill, Stat>> playersMap = new HashMap<String, Map<Skill, Stat>>(); public Hiscores(Script s) { script = s; } public static class Stat { private int rank, level, exp; public Stat(int rank, int level, int exp) { this.rank = rank; this.level = level; this.exp = exp; } public int getRank() { return this.rank; } public int getLevel() { return this.level; } public int getExp() { return this.exp; } } public int formatString(String string) { String number = string.substring(string.indexOf('>') +1, string.lastIndexOf('<')); number = number.replace(",", ""); return Integer.parseInt(number); } private void getInfo(String userName) throws IOException { String name = userName.replace(" ", "_"); URL url = new URL(URL_BASE + name); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); String skillName; while ((skillName = reader.readLine()) != null) { for (Skill skill: Skill.values()) { int rank = 0, level = 0, exp = 0; String string; if (skillName.equalsIgnoreCase(skill.name())) { for (int i = 0; i <= 3; i++) { string = reader.readLine(); if (i == 1) rank = formatString(string); else if (i == 2) level = formatString(string); else if (i == 3) exp = formatString(string); } if (!playersMap.containsKey(userName)) playersMap.put(userName, new HashMap<Skill, Hiscores.Stat>()); else playersMap.get(userName).put(skill, new Stat(rank, level, exp)); } } } reader.close(); } public void addPlayer(String userName) throws IOException { if (playersMap.containsKey(userName)) playersMap.remove(userName); else this.getInfo(userName); } public Stat get(String userName, Skill skill) { if (playersMap.containsKey(userName)) return playersMap.get(userName).get(skill); return null; } } Edited June 18, 2014 by josedpay 1 Link to comment Share on other sites More sharing options...
Dog_ Posted June 18, 2014 Share Posted June 18, 2014 and not high scores Link to comment Share on other sites More sharing options...
Joseph Posted June 18, 2014 Author Share Posted June 18, 2014 (edited) ill fix it quick edit: fixed Edited June 18, 2014 by josedpay Link to comment Share on other sites More sharing options...