From 69d0e80b4a3909b997f7e6f4ed40c8e4c280b271 Mon Sep 17 00:00:00 2001 From: Clisprail Date: Tue, 12 Aug 2014 12:29:11 +0200 Subject: [PATCH] RandomHandler improved --- .../parabot/environment/scripts/Script.java | 5 +++++ .../scripts/randoms/RandomHandler.java | 20 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/parabotv2/src/org/parabot/environment/scripts/Script.java b/parabotv2/src/org/parabot/environment/scripts/Script.java index f256e7b..22fe4e8 100644 --- a/parabotv2/src/org/parabot/environment/scripts/Script.java +++ b/parabotv2/src/org/parabot/environment/scripts/Script.java @@ -9,6 +9,7 @@ import org.parabot.environment.scripts.framework.Frameworks; import org.parabot.environment.scripts.framework.LoopTask; import org.parabot.environment.scripts.framework.SleepCondition; import org.parabot.environment.scripts.framework.Strategy; +import org.parabot.environment.scripts.randoms.Random; import java.util.Collection; @@ -59,6 +60,10 @@ public class Script implements Runnable { public final void setAbstractFrameWork(AbstractFramework f) { this.frameWork = f; } + + public final void addRandom(Random random) { + Context.getInstance().getRandomHandler().addRandom(random); + } @Override public final void run() { diff --git a/parabotv2/src/org/parabot/environment/scripts/randoms/RandomHandler.java b/parabotv2/src/org/parabot/environment/scripts/randoms/RandomHandler.java index f01f5df..4656d96 100644 --- a/parabotv2/src/org/parabot/environment/scripts/randoms/RandomHandler.java +++ b/parabotv2/src/org/parabot/environment/scripts/randoms/RandomHandler.java @@ -2,6 +2,8 @@ package org.parabot.environment.scripts.randoms; import java.util.ArrayList; +import org.parabot.core.Core; + /** * * @author Everel @@ -11,7 +13,7 @@ public class RandomHandler { private ArrayList randoms; public RandomHandler() { - randoms = new ArrayList<>(); + this.randoms = new ArrayList<>(); } /** @@ -19,8 +21,24 @@ public class RandomHandler { * @param random */ public void addRandom(Random random) { + if(random == null) { + throw new NullPointerException("Null random"); + } + for(Random r : randoms) { + if(r.getClass() == random.getClass()) { + Core.verbose("Ignored added random, duplicate."); + return; + } + } randoms.add(random); } + + /** + * Clears all added randoms + */ + public void clearRandoms() { + randoms.clear(); + } /** * Checks if random occurs and runs it