X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2Ftriggers%2FAlwaysTrigger.java;h=b916237657f186c69ec43dc53b1b79f199359895;hb=3b2babd4a444199df947ed9d2460a1e9b58581a6;hp=3716894673b2c0b8ebf6bb8a60dcc5af60d11041;hpb=6f69aff66ba5617d0bb27874014b4274bc551ab8;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/triggers/AlwaysTrigger.java b/src/main/java/net/pterodactylus/rhynodge/triggers/AlwaysTrigger.java index 3716894..b916237 100644 --- a/src/main/java/net/pterodactylus/rhynodge/triggers/AlwaysTrigger.java +++ b/src/main/java/net/pterodactylus/rhynodge/triggers/AlwaysTrigger.java @@ -22,6 +22,7 @@ import net.pterodactylus.rhynodge.State; import net.pterodactylus.rhynodge.Trigger; import net.pterodactylus.rhynodge.output.DefaultOutput; import net.pterodactylus.rhynodge.output.Output; +import net.pterodactylus.rhynodge.states.OutputState; /** * {@link Trigger} implementation that always triggers. @@ -30,11 +31,26 @@ import net.pterodactylus.rhynodge.output.Output; */ public class AlwaysTrigger implements Trigger { + private State currentState; + + /** + * {@inheritDoc} + *

+ * This implementation returns the current state. + */ + @Override + public State mergeStates(State previousState, State currentState) { + this.currentState = currentState; + return currentState; + } + /** * {@inheritDoc} + *

+ * This implementation always returns {@code true}. */ @Override - public boolean triggers(State currentState, State previousState) { + public boolean triggers() { return true; } @@ -43,7 +59,18 @@ public class AlwaysTrigger implements Trigger { */ @Override public Output output(Reaction reaction) { - return new DefaultOutput("true").addText("text/plain", "true").addText("text/html", "

true
"); + DefaultOutput output = new DefaultOutput(reaction.name()); + if (currentState instanceof OutputState) { + OutputState outputState = (OutputState) currentState; + if (outputState.plainTextOutput().isPresent()) { + output = output.addText("text/plain", outputState.plainTextOutput().get()); + } + if (outputState.htmlOutput().isPresent()) { + output = output.addText("text/html", outputState.htmlOutput().get()); + } + return output; + } + return output.addText("text/plain", "true").addText("text/html", "
true
"); } }