Minestom/src/main/java/net/minestom/server/timer/TaskScheduleImpl.java

36 lines
950 B
Java
Raw Normal View History

2021-12-16 00:15:55 +01:00
package net.minestom.server.timer;
import org.jetbrains.annotations.NotNull;
import java.time.Duration;
import java.util.concurrent.CompletableFuture;
final class TaskScheduleImpl {
static TaskSchedule NEXT_TICK = new TickSchedule(1);
static TaskSchedule PARK = new Park();
static TaskSchedule STOP = new Stop();
static TaskSchedule IMMEDIATE = new Immediate();
record DurationSchedule(@NotNull Duration duration) implements TaskSchedule {
}
record TickSchedule(int tick) implements TaskSchedule {
public TickSchedule {
if (tick <= 0)
throw new IllegalArgumentException("Tick must be greater than 0 (" + tick + ")");
}
}
record FutureSchedule(CompletableFuture<?> future) implements TaskSchedule {
}
record Park() implements TaskSchedule {
}
record Stop() implements TaskSchedule {
}
record Immediate() implements TaskSchedule {
}
}