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.
*/
public class AlwaysTrigger implements Trigger {
+ private State currentState;
+
/**
* {@inheritDoc}
* <p>
*/
@Override
public State mergeStates(State previousState, State currentState) {
+ this.currentState = currentState;
return currentState;
}
*/
@Override
public Output output(Reaction reaction) {
- return new DefaultOutput("true").addText("text/plain", "true").addText("text/html", "<div>true</div>");
+ 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", "<div>true</div>");
}
}