Jump to content

Can someone tell me why this script doesn't run on OsBot?


Recommended Posts

Posted

The code compiles fine, however when attempting to run via OSBot, the script doesn't run.

Any idea? FYI: The script is meant to identify combat details of a player upon typing '!stats' and then type out this information.
 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Arrays;

import org.osbot.Hi;
import org.osbot.rs07.api.ui.Message;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;

import java.net.MalformedURLException;
import java.util.ArrayList;

@ScriptManifest(name = "Highscores", author = "OsBot", version = 1, logo = " ", info = "Highscores")
public class Highscores extends Script {


    private final ArrayList<String> stats = new ArrayList<String>();

    public Highscores(final String player) {
        getStats(player);
    }

    public void onMessage(Message message) throws InterruptedException {
        String text = message.getMessage().toLowerCase();
        String username = message.getUsername().toLowerCase();
        Highscores highscores = new Highscores(username);

            if(text.contains("!stats")) {
            log("---");
            getKeyboard().typeString("Atk:" + highscores.getSkillLevel(Skill.ATTACK) +
                    ",Str:" + highscores.getSkillLevel(Skill.STRENGTH) +
                    ",Def:" + highscores.getSkillLevel(Skill.DEFENCE) +
                    ",Range:" + highscores.getSkillLevel(Skill.RANGED) +
                    ",Mage:" + highscores.getSkillLevel(Skill.MAGIC));
        }
    }

    @Override
    public void onStart() {
        this.getBot().addMessageListener(this);
    }

    @Override
    public int onLoop() throws InterruptedException {
        return random(400,600);
    }

    public int getSkillLevel(final Skill skill) {
        int index = getSkillIndex(skill);
        String[] array = stats.get(index).split(",");
        return Integer.parseInt(array[1]);
    }

    public int getSkillExperience(final Skill skill) {
        int index = getSkillIndex(skill);
        String[] array = stats.get(index).split(",");
        return Integer.parseInt(array[2]);
    }

    private void getStats(final String player) {
        try {
            URL url = new URL("https://secure.runescape.com/m=hiscore_oldschool/index_lite.ws?player=" + player);
            URLConnection con = url.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));

            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                stats.add(inputLine);
            }
            in.close();
        } catch (MalformedURLException e) {
            // CATCH
        } catch (IOException e) {
            // CATCH
        }
    }

    private int getSkillIndex(final Skill skill) {
        return Arrays.asList(Skill.values()).indexOf(skill) + 1;
    }
}

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...