From 1058d8855299e1dca154032b936d87e849a1ff27 Mon Sep 17 00:00:00 2001 From: Samuel Date: Thu, 21 Mar 2024 17:05:12 -0400 Subject: [PATCH] Scheduler extends Executor for convenience (#2036) * Scheduler extends Executor for convenience * chore: doc on Scheduler#execute() --------- Co-authored-by: mworzala --- .../java/net/minestom/server/timer/Scheduler.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minestom/server/timer/Scheduler.java b/src/main/java/net/minestom/server/timer/Scheduler.java index bd5eee9e2..d28e12466 100644 --- a/src/main/java/net/minestom/server/timer/Scheduler.java +++ b/src/main/java/net/minestom/server/timer/Scheduler.java @@ -2,6 +2,7 @@ package net.minestom.server.timer; import org.jetbrains.annotations.NotNull; +import java.util.concurrent.Executor; import java.util.function.Supplier; /** @@ -10,7 +11,7 @@ import java.util.function.Supplier; *

* Tasks are by default executed in the caller thread. */ -public sealed interface Scheduler permits SchedulerImpl, SchedulerManager { +public sealed interface Scheduler extends Executor permits SchedulerImpl, SchedulerManager { static @NotNull Scheduler newScheduler() { return new SchedulerImpl(); } @@ -75,4 +76,13 @@ public sealed interface Scheduler permits SchedulerImpl, SchedulerManager { default @NotNull Task scheduleNextProcess(@NotNull Runnable task) { return scheduleNextProcess(task, ExecutionType.SYNC); } + + /** + * Implementation of {@link Executor}, proxies to {@link #scheduleNextTick(Runnable)}. + * @param command the task to execute on the next tick + */ + @Override + default void execute(@NotNull Runnable command) { + scheduleNextTick(command); + } }