import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * Created with IntelliJ IDEA. * User: Cory * Date: 26/05/13 * Time: 11:13 */ public class Strategies implements Iterable { private List list = new ArrayList(); public void add(T... strategies) { for (T T : strategies) { if(T != null) list.add(T); } } public void remove(T... strategies) { for (T T : strategies) { if(T != null) list.remove(T); } } public Iterator iterator() { return list.iterator(); } } ____________________________________________________________________________ import org.osbot.script.Script; import osbotscripts.util.Chunk; /** * Created with IntelliJ IDEA. * User: Cory * Date: 26/05/13 * Time: 11:18 */ public abstract class Strategy { protected Script script = null; protected Strategy(Script script) { this.script = script; } public abstract boolean validate(); public abstract int execute() throws InterruptedException; } ____________________________________________________________________________ import org.osbot.script.Script; import org.osbot.script.ScriptManifest; @ScriptManifest(name = "AIO Agility", author = "Cory", version = 1.00D, info="AIOAgility Script") public class AIOAgility extends Script { private Strategies strategies = new Strategies(); @Override public int onLoop() throws InterruptedException { try { for(Strategy strategy : strategies) { if(strategy.validate()) strategy.execute(); } } catch (Exception e){} return 1; } }