X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Freactor%2Fengine%2FEngine.java;h=79ea4828c0a568a83b3985504d704903c220ca10;hb=45488abc39f14a520dfe7926d9eacc479f302fcb;hp=64f2c8341fc89be9f2877a4ee57171fe720f3636;hpb=178222dd2c004946895d522a954b6c3eaf926c09;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 64f2c83..79ea482 100644 --- a/src/main/java/net/pterodactylus/reactor/engine/Engine.java +++ b/src/main/java/net/pterodactylus/reactor/engine/Engine.java @@ -118,17 +118,17 @@ public class Engine extends AbstractExecutionThreadService { Reaction nextReaction; synchronized (reactions) { for (Entry 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. */