Jump to content
View in the app

A better way to browse. Learn more.

OSBot :: 2007 OSRS Botting

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Highscores API

Featured Replies


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.URL;

/**

* A wrapper for the RuneScape old school highscores API.

* @author Ryan Greene

*

*/

public final class Highscores {

/**

* A private constructor to prevent initialization.

*/

private Highscores() {

}

/**

* The base URL of the API request.

*/

private static final String BASE_URL = "http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=";

/**

* The amount of skills in old school RuneScape.

*/

private static final int SKILL_COUNT = 24;

/**

* The amount of recorded activities in old school RuneScape.

*/

private static final int ACTIVITY_COUNT = 3;

/**

* Gets all of the specified player's skills.

* @param playerName The name of the player to get the skills of.

* @return The skills of the player.

* @throws IllegalArgumentException if the player name isn't a valid one.

*/

public static Skill[] getSkills(final String playerName) {

try {

final Skill[] skills = new Skill[SKILL_COUNT];

try (final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(new StringBuffer(BASE_URL).append(playerName).toString()).openStream()))) {

for (int skill = 0; skill < SKILL_COUNT; skill++) {

final String[] skillEncodedSplit = reader.readLine().split(",");

skills[skill] = new Skill(Integer.parseInt(skillEncodedSplit[0]), Integer.parseInt(skillEncodedSplit[1]), Integer.parseInt(skillEncodedSplit[2]));

}

}

return skills;

} catch (final IOException e) {

throw new IllegalArgumentException("Username not valid");

}

}

/**

* Gets the specified skill of the specified player.

* @param playerName The name of the player to get the skill of.

* @param skillId The id of the skill to get.

* @return The skill of the player.

*/

public static Skill getSkill(final String playerName, int skillId) {

return getSkills(playerName)[skillId];

}

/**

* Gets all of the specified player's activities.

* @param playerName The name of the player to get the activities of.

* @return The activities of the player.

* @throws IllegalArgumentException if the player name isn't a valid one.

*/

public static Activity[] getActivities(final String playerName) {

try {

final Activity[] activities = new Activity[ACTIVITY_COUNT];

try (final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(new StringBuffer(BASE_URL).append(playerName).toString()).openStream()))) {

for (int skill = 0; skill < SKILL_COUNT; skill++) {

reader.readLine();

}

for (int activity = 0; activity < ACTIVITY_COUNT; activity++) {

final String[] activityEncodedSplit = reader.readLine().split(",");

activities[activity] = new Activity(Integer.parseInt(activityEncodedSplit[0]), Integer.parseInt(activityEncodedSplit[1]));

}

}

return activities;

} catch (final IOException e) {

throw new IllegalArgumentException("Username not valid");

}

}

/**

* Gets the specified activity of the specified player.

* @param playerName The name of the player to get the activity of.

* @param activityId The id of the activity to get.

* @return The activity of the player.

*/

public static Activity getActivity(final String playerName, int activityId) {

return getActivities(playerName)[activityId];

}

/**

* Represents a single skill.

* @author Ryan Greene

*

*/

public static class Skill {

/**

* The rank of the skill.

*/

private final int rank;

/**

* The level of the skill.

*/

private final int level;

/**

* The xp of the skill.

*/

private final int xp;

/**

* Constructs a new skill with the specified rank, level, and xp.

* @param rank The rank of the skill.

* @param level The level of the skill.

* @param xp The xp of the skill.

*/

private Skill(final int rank, final int level, final int xp) {

this.rank = rank;

this.level = level;

this.xp = xp;

}

/**

* Gets the rank of the skill.

* @return The rank of the skill.

*/

public int getRank() {

return rank;

}

/**

* Gets the level of the skill.

* @return The level of the skill.

*/

public int getLevel() {

return level;

}

/**

* Gets the xp of the skill.

* @return The xp of the skill.

*/

public int getXp() {

return xp;

}

}

/**

* Represents a single activity.

* @author Ryan Greene

*

*/

public static class Activity {

/**

* The rank of the activity.

*/

private final int rank;

/**

* The score of the activity.

*/

private final int score;

/**

* Constructs a new activity with the specified rank and score.

* @param rank The rank of the activity.

* @param score The score of the activity.

*/

private Activity(final int rank, final int score) {

this.rank = rank;

this.score = score;

}

/**

* Gets the rank of the activity.

* @return The rank of the activity.

*/

public int getRank() {

return rank;

}

/**

* Gets the score of the activity.

* @return The score of the activity.

*/

public int getScore() {

return score;

}

}

}

Edited by Cyberus

  • Author

added clues done and bounty hunter kills smile.png

nice game thanks for the contribution. i remember making one of these that shit wasn't easy.

Guest
This topic is now closed to further replies.

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.