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

36 lines
950 B
Java

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 {
}
}