OsBotTest19 Posted September 13, 2021 Share Posted September 13, 2021 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; } } Quote Link to comment Share on other sites More sharing options...
Gunman Posted September 13, 2021 Share Posted September 13, 2021 @OsBotTest19 You don't have to do that in the onStart, all you have to do is Override the onMessage method like below @Override public void onMessage(Message message) throws InterruptedException { log("Chat box message -> " + message.getMessage()); } Logs chat box messages just fine^ 2 Quote Link to comment Share on other sites More sharing options...