mirror of https://github.com/Minestom/Minestom.git
36 lines
950 B
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 {
|
|
}
|
|
}
|