From f5d49af0a1fa4bbff5cc89aca6d892424ab7ebc0 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Fri, 21 Feb 2020 14:49:16 -0500 Subject: [PATCH] [+] Create condition task --- .../hyritone/task/defaults/TaskCondition.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/org/hydev/hyritone/task/defaults/TaskCondition.java diff --git a/src/main/java/org/hydev/hyritone/task/defaults/TaskCondition.java b/src/main/java/org/hydev/hyritone/task/defaults/TaskCondition.java new file mode 100644 index 00000000..e9c92390 --- /dev/null +++ b/src/main/java/org/hydev/hyritone/task/defaults/TaskCondition.java @@ -0,0 +1,41 @@ +package org.hydev.hyritone.task.defaults; + +import lombok.AllArgsConstructor; +import org.hydev.hyritone.task.Task; +import org.hydev.hyritone.task.TaskRunState; + +import java.util.function.Function; + +/** + * Run task if condition is met + *

+ * Class created by the HyDEV Team on 2020-01-25! + * + * @author HyDEV Team (https://github.com/HyDevelop) + * @author Hykilpikonna (https://github.com/hykilpikonna) + * @author Vanilla (https://github.com/VergeDX) + * @since 2020-01-25 17:44 + */ +@AllArgsConstructor +public class TaskCondition implements Task +{ + private final Function condition; + private final Task taskIf; + private final Task taskElse; + + @Override + public void execute(TaskRunState state) + { + if (condition.apply(state)) + { + if (taskIf != null) + { + taskIf.execute(state); + } + } + else if (taskElse != null) + { + taskElse.execute(state); + } + } +}