The Undefeated Posted November 11, 2017 Share Posted November 11, 2017 (edited) public class FetchSprites { private static String path = ""; public static File getSprite(String item) { item = Character.toUpperCase(item.charAt(0)) + item.toLowerCase().substring(1); if (!Files.exists(Paths.get(path + item + ".png"))) { fetchSprite(item); } return new File(path + item + ".png"); } private static void fetchSprite(String item) { item = Character.toUpperCase(item.charAt(0)) + item.toLowerCase().substring(1); String itemNoSpaces = item.replace(" ","_"); try { final URL url = new URL("http://oldschoolrunescape.wikia.com/wiki/" + itemNoSpaces.toLowerCase()); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream())); String line; while ((line = bufferedReader.readLine()) != null) { if (line.contains("/" + itemNoSpaces + ".png")) { int start = line.indexOf("<a href=") + 9; int name = line.indexOf(itemNoSpaces + ".png",start); int end = name + item.length() + 4; URL imageUrl = new URL(line.substring(start,end)); BufferedImage image = ImageIO.read(imageUrl); ImageIO.write(image,"png",new File(path + item + ".png")); break; } } bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } } } This will check if the sprite is already cached, if not, it will cache the sprite and return the file(path). Improvements are welcome. Edited November 11, 2017 by The Undefeated 1 Quote Link to comment Share on other sites More sharing options...
Chris Posted November 11, 2017 Share Posted November 11, 2017 Thanks babe Quote Link to comment Share on other sites More sharing options...
TheWind Posted November 11, 2017 Share Posted November 11, 2017 nice Quote Link to comment Share on other sites More sharing options...
Lemons Posted November 11, 2017 Share Posted November 11, 2017 If you'd like to simplify this, I host the item images in 32x32 pngs. http://basketti.club/441.png above url is for noted iron ore: otherwise great solution 1 Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted November 11, 2017 Author Share Posted November 11, 2017 16 minutes ago, Lemons said: If you'd like to simplify this, I host the item images in 32x32 pngs. http://basketti.club/441.png above url is for noted iron ore: otherwise great solution Oh that looks nice. What about untradeables? Quote Link to comment Share on other sites More sharing options...
Lemons Posted November 11, 2017 Share Posted November 11, 2017 2 minutes ago, The Undefeated said: Oh that looks nice. What about untradeables? Should have all the items, though this is from an older revision (forget which, I got the dump from rune-server) so newer items might be missing. Quote Link to comment Share on other sites More sharing options...
HeyImJamie Posted November 11, 2017 Share Posted November 11, 2017 So this is how you put items into GUI's Nice release. Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted November 11, 2017 Author Share Posted November 11, 2017 11 hours ago, Lemons said: Should have all the items, though this is from an older revision (forget which, I got the dump from rune-server) so newer items might be missing. Hmm, I'll stick to Wiki just to be sure. Quote Link to comment Share on other sites More sharing options...
sonda Posted November 11, 2017 Share Posted November 11, 2017 Definitely going to use your your images if that’s okay, I’ve been trying to print screen and copy paste into mspaint, and tediously zoom in and try to cut it out lol! Quote Link to comment Share on other sites More sharing options...
The Undefeated Posted November 11, 2017 Author Share Posted November 11, 2017 48 minutes ago, sonda said: Definitely going to use your your images if that’s okay, I’ve been trying to print screen and copy paste into mspaint, and tediously zoom in and try to cut it out lol! Of course you can them, the pictures are loaded from oldschool wiki. Quote Link to comment Share on other sites More sharing options...