diff --git a/src/main/java/org/parabot/environment/randoms/RandomHandler.java b/src/main/java/org/parabot/environment/randoms/RandomHandler.java index a8bda20..1b80903 100644 --- a/src/main/java/org/parabot/environment/randoms/RandomHandler.java +++ b/src/main/java/org/parabot/environment/randoms/RandomHandler.java @@ -24,7 +24,7 @@ public class RandomHandler { public void init() { RandomParser.enable(); - checkAndRun(RandomType.ON_SERVER_START); + runAll(RandomType.ON_SERVER_START); } /** @@ -100,6 +100,40 @@ public class RandomHandler { this.activeRandoms.clear(); } + /** + * Executes a specific random + * + * @param r + * @return True if the random is executed, false if not + */ + public boolean executeRandom(Random r){ + if (r.activate()) { + Logger.addMessage("Running random '" + r.getName() + "'", true); + try { + r.execute(); + return true; + }catch (Exception e){ + Logger.addMessage("Random failed: '" + r.getName() + "'", false); + e.printStackTrace(); + } + } + + return false; + } + + /** + * Runs all randoms of a certain type + * + * @param type + */ + public void runAll(RandomType type){ + for (Random r : this.activeRandoms) { + if (r.getRandomType().getId() == type.getId()) { + executeRandom(r); + } + } + } + /** * Checks if random occurs and runs it * @@ -107,15 +141,8 @@ public class RandomHandler { */ public boolean checkAndRun(RandomType type) { for (Random r : this.activeRandoms) { - if (r.getRandomType().getId() == type.getId() && r.activate()) { - Logger.addMessage("Running random '" + r.getName() + "'", true); - try { - r.execute(); - }catch (Exception e){ - Logger.addMessage("Random failed: '" + r.getName() + "'", false); - e.printStackTrace(); - } - return true; + if (r.getRandomType().getId() == type.getId()) { + return executeRandom(r); } } return false; diff --git a/src/main/java/org/parabot/environment/scripts/Script.java b/src/main/java/org/parabot/environment/scripts/Script.java index 2e646e9..21527b0 100644 --- a/src/main/java/org/parabot/environment/scripts/Script.java +++ b/src/main/java/org/parabot/environment/scripts/Script.java @@ -81,7 +81,7 @@ public class Script implements Runnable { return; } - context.getRandomHandler().checkAndRun(RandomType.ON_SCRIPT_START); + context.getRandomHandler().runAll(RandomType.ON_SCRIPT_START); Core.verbose("Detecting script framework..."); context.setRunningScript(this); @@ -120,7 +120,7 @@ public class Script implements Runnable { Core.verbose("Script stopped/finished, unloading and stopping..."); onFinish(); - context.getRandomHandler().checkAndRun(RandomType.ON_SCRIPT_FINISH); + context.getRandomHandler().runAll(RandomType.ON_SCRIPT_FINISH); Logger.addMessage("Script stopped.", false); context.getServerProvider().unloadScript(this);