X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2Fengine%2FEngine.java;h=6f4376b7569f6088c95d1003907f4b47215dba26;hb=13a4fe6bece23b3dd561de657cf9bb7ea307e2b6;hp=2825b5492c017acbbeb5c802ced37eb7e50a78db;hpb=67c416770e847c09df106b31d03c9227e738a429;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/reactor/engine/Engine.java b/src/main/java/net/pterodactylus/reactor/engine/Engine.java index 2825b54..6f4376b 100644 --- a/src/main/java/net/pterodactylus/reactor/engine/Engine.java +++ b/src/main/java/net/pterodactylus/reactor/engine/Engine.java @@ -47,12 +47,22 @@ public class Engine extends AbstractExecutionThreadService { private static final Logger logger = Logger.getLogger(Engine.class); /** The state manager. */ - private final StateManager stateManager = new StateManager("states"); + private final StateManager stateManager; /** All defined reactions. */ /* synchronize on itself. */ private final Map reactions = new HashMap(); + /** + * Creates a new engine. + * + * @param stateManager + * The state manager + */ + public Engine(StateManager stateManager) { + this.stateManager = stateManager; + } + // // ACCESSORS // @@ -125,7 +135,7 @@ public class Engine extends AbstractExecutionThreadService { reactionName = nextReactions.get(nextReactions.firstKey()).getLeft(); nextReaction = nextReactions.get(nextReactions.firstKey()).getRight(); } - logger.debug(String.format("Next Reaction: %s.", nextReaction)); + logger.debug(String.format("Next Reaction: %s.", reactionName)); /* wait until the next reaction has to run. */ net.pterodactylus.reactor.State lastState = stateManager.loadLastState(reactionName); @@ -136,7 +146,7 @@ public class Engine extends AbstractExecutionThreadService { if (waitTime > 0) { synchronized (reactions) { try { - logger.debug(String.format("Waiting for %d milliseconds.", waitTime)); + logger.info(String.format("Waiting until %tc.", lastStateTime + nextReaction.updateInterval())); reactions.wait(waitTime); } catch (InterruptedException ie1) { /* we’re looping! */ @@ -192,7 +202,7 @@ public class Engine extends AbstractExecutionThreadService { logger.debug(String.format("Trigger was hit: %s.", triggerHit)); if (triggerHit) { logger.info("Executing Action..."); - nextReaction.action().execute(trigger.output()); + nextReaction.action().execute(trigger.output(nextReaction)); } }