Print name of reaction instead of the reaction itself.
[rhynodge.git] / src / main / java / net / pterodactylus / reactor / engine / Engine.java
index 64f2c83..79ea482 100644 (file)
@@ -118,17 +118,17 @@ public class Engine extends AbstractExecutionThreadService {
                        Reaction nextReaction;
                        synchronized (reactions) {
                                for (Entry<String, Reaction> reactionEntry : reactions.entrySet()) {
-                                       net.pterodactylus.reactor.State state = stateManager.loadState(reactionEntry.getKey());
+                                       net.pterodactylus.reactor.State state = stateManager.loadLastState(reactionEntry.getKey());
                                        long stateTime = (state != null) ? state.time() : 0;
                                        nextReactions.put(stateTime + reactionEntry.getValue().updateInterval(), Pair.of(reactionEntry.getKey(), reactionEntry.getValue()));
                                }
                                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.loadState(reactionName);
+                       net.pterodactylus.reactor.State lastState = stateManager.loadLastState(reactionName);
                        long lastStateTime = (lastState != null) ? lastState.time() : 0;
                        int lastStateFailCount = (lastState != null) ? lastState.failCount() : 0;
                        long waitTime = (lastStateTime + nextReaction.updateInterval()) - System.currentTimeMillis();
@@ -177,14 +177,15 @@ public class Engine extends AbstractExecutionThreadService {
                        if (!state.success()) {
                                state.setFailCount(lastStateFailCount + 1);
                        }
+                       net.pterodactylus.reactor.State lastSuccessfulState = stateManager.loadLastSuccessfulState(reactionName);
                        stateManager.saveState(reactionName, state);
 
                        /* only run trigger if we have collected two successful states. */
                        Trigger trigger = nextReaction.trigger();
                        boolean triggerHit = false;
-                       if ((lastState != null) && lastState.success() && state.success()) {
+                       if ((lastSuccessfulState != null) && lastSuccessfulState.success() && state.success()) {
                                logger.debug("Checking Trigger for changes...");
-                               triggerHit = trigger.triggers(state, lastState);
+                               triggerHit = trigger.triggers(state, lastSuccessfulState);
                        }
 
                        /* run action if trigger was hit. */