Search the Community
Showing results for tags 'flags'.
-
Here's a quick way to get key/value pairs from your CLI parameters. We can take: -script TestScript:body.green-d'hide-body.legs.preists-robes.location.varrock.mode.attack And convert it to: BODY:green d'hide body LEGS:priests robes LOCATION:varrock MODE:attack You're probably wondering 'why are the keys uppercase?', well that's to signify what the bot thinks are keys. A little debugging and you'll be able to see what your bot sees. The full-stop "." is our delimiter, and the hyphen "-" is our replacement for the space " " key. Example code + template: public class Test extends Script { Map<String, String> parameters; String mode; @Override public void onStart() throws InterruptedException { compileParameters(); mode = parameters.get("mode"); } @Override public int onLoop() throws InterruptedException { // log out the parameters for debugging purposes logger.debug(parameters); // use parameters if (mode != null && !mode.isEmpty()) { if (mode.equals("attack")) { // TODO - attack something } } return 1000; } /** * Compiles OSBot parameters into key/value pairs */ private void compileParameters() { String rawParameterString = getParameters(); String[] contents; String key; String value; parameters = new HashMap<>(); if (rawParameterString != null && !rawParameterString.isEmpty()) { logger.debug(rawParameterString); contents = rawParameterString.split("\\."); if (contents != null && contents.length > 0) { for (int i = 0; i < contents.length; i += 2) { key = contents[i]; key = key.toUpperCase(); value = (i + 1 < contents.length ? contents[i + 1] : ""); value = value.replaceAll("-", " "); parameters.put(key, value); } } } } } Have fun!