Interface ServerScheduler
- All Known Implementing Classes:
Scheduler
public interface ServerScheduler
-
Method Summary
Modifier and TypeMethodDescription<T> @NotNull Future
<T> callSyncMethod
(@NotNull Callable<T> task) Calls a method on the main thread and returns a Future object.void
cancelTask
(int taskId) Removes task from scheduler.void
Removes all tasks associated with a particular plugin from the scheduler.@NotNull List
<ServerWorker> Returns a list of all active workers.@NotNull List
<ServerSchedulerTask> Returns a list of all pending tasks.boolean
isCurrentlyRunning
(int taskId) Check if the task currently running.boolean
isQueued
(int taskId) Check if the task queued to be run later.void
runTask
(@NotNull Consumer<? super ServerSchedulerTask> task) Returns a task that will run on the next server tick.@NotNull ServerSchedulerTask
runTask
(@NotNull ServerRunnable task) Deprecated.void
runTaskAsynchronously
(@NotNull Consumer<? super ServerSchedulerTask> task) Returns a task that will run asynchronously.@NotNull ServerSchedulerTask
runTaskAsynchronously
(@NotNull ServerRunnable task) Deprecated.void
runTaskLater
(@NotNull Consumer<? super ServerSchedulerTask> task, long delay) Returns a task that will run after the specified number of server ticks.@NotNull ServerSchedulerTask
runTaskLater
(@NotNull ServerRunnable task, long delay) Deprecated.void
runTaskLaterAsynchronously
(@NotNull Consumer<? super ServerSchedulerTask> task, long delay) Returns a task that will run asynchronously after the specified number of server ticks.@NotNull ServerSchedulerTask
runTaskLaterAsynchronously
(@NotNull ServerRunnable task, long delay) Deprecated.void
runTaskTimer
(@NotNull Consumer<? super ServerSchedulerTask> task, long delay, long period) Returns a task that will repeatedly run until cancelled, starting after the specified number of server ticks.@NotNull ServerSchedulerTask
runTaskTimer
(@NotNull ServerRunnable task, long delay, long period) Deprecated.void
runTaskTimerAsynchronously
(@NotNull Consumer<? super ServerSchedulerTask> task, long delay, long period) Returns a task that will repeatedly run asynchronously until cancelled, starting after the specified number of server ticks.@NotNull ServerSchedulerTask
runTaskTimerAsynchronously
(@NotNull ServerRunnable task, long delay, long period) Deprecated.int
scheduleAsyncDelayedTask
(@NotNull ServerRunnable task) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskint
scheduleAsyncDelayedTask
(@NotNull ServerRunnable task, long delay) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskint
scheduleAsyncRepeatingTask
(@NotNull ServerRunnable task, long delay, long period) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskint
scheduleSyncDelayedTask
(@NotNull ServerRunnable task) Deprecated.int
scheduleSyncDelayedTask
(@NotNull ServerRunnable task, long delay) Deprecated.int
scheduleSyncRepeatingTask
(@NotNull ServerRunnable task, long delay, long period) Deprecated.
-
Method Details
-
scheduleSyncDelayedTask
Deprecated.- Parameters:
task
- Task to be executeddelay
- Delay in server ticks before executing task- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleSyncDelayedTask
Deprecated.- Parameters:
task
- Task to be executed- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleSyncRepeatingTask
@Deprecated int scheduleSyncRepeatingTask(@NotNull @NotNull ServerRunnable task, long delay, long period) Deprecated.- Parameters:
task
- Task to be executeddelay
- Delay in server ticks before executing first repeatperiod
- Period in server ticks of the task- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleAsyncDelayedTask
Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskSchedules a once off task to occur after a delay. This task will be executed by a thread managed by the scheduler.- Parameters:
task
- Task to be executeddelay
- Delay in server ticks before executing task- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleAsyncDelayedTask
Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskSchedules a once off task to occur as soon as possible. This task will be executed by a thread managed by the scheduler.- Parameters:
task
- Task to be executed- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleAsyncRepeatingTask
@Deprecated int scheduleAsyncRepeatingTask(@NotNull @NotNull ServerRunnable task, long delay, long period) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskSchedules a repeating task. This task will be executed by a thread managed by the scheduler.- Parameters:
task
- Task to be executeddelay
- Delay in server ticks before executing first repeatperiod
- Period in server ticks of the task- Returns:
- Task id number (-1 if scheduling failed)
-
callSyncMethod
Calls a method on the main thread and returns a Future object. This task will be executed by the main server thread.- Note: The Future.get() methods must NOT be called from the main thread.
- Note2: There is at least an average of 10ms latency until the isDone() method returns true.
- Type Parameters:
T
- The callable's return type- Parameters:
task
- Task to be executed- Returns:
- Future Future object related to the task
-
cancelTask
void cancelTask(int taskId) Removes task from scheduler.- Parameters:
taskId
- Id number of task to be removed
-
cancelTasks
void cancelTasks()Removes all tasks associated with a particular plugin from the scheduler. -
isCurrentlyRunning
boolean isCurrentlyRunning(int taskId) Check if the task currently running.A repeating task might not be running currently, but will be running in the future. A task that has finished, and does not repeat, will not be running ever again.
Explicitly, a task is running if there exists a thread for it, and that thread is alive.
- Parameters:
taskId
- The task to check.- Returns:
- If the task is currently running.
-
isQueued
boolean isQueued(int taskId) Check if the task queued to be run later.If a repeating task is currently running, it might not be queued now but could be in the future. A task that is not queued, and not running, will not be queued again.
- Parameters:
taskId
- The task to check.- Returns:
- If the task is queued to be run.
-
getActiveWorkers
Returns a list of all active workers.This list contains asynch tasks that are being executed by separate threads.
- Returns:
- Active workers
-
getPendingTasks
Returns a list of all pending tasks. The ordering of the tasks is not related to their order of execution.- Returns:
- Active workers
-
runTask
void runTask(@NotNull @NotNull Consumer<? super ServerSchedulerTask> task) throws IllegalArgumentException Returns a task that will run on the next server tick.- Parameters:
task
- the task to be run- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTask
@Deprecated @NotNull @NotNull ServerSchedulerTask runTask(@NotNull @NotNull ServerRunnable task) throws IllegalArgumentException Deprecated.- Parameters:
task
- the task to be run- Returns:
- a ServerSchedulerTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskAsynchronously
void runTaskAsynchronously(@NotNull @NotNull Consumer<? super ServerSchedulerTask> task) throws IllegalArgumentException Returns a task that will run asynchronously.- Parameters:
task
- the task to be run- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskAsynchronously
@Deprecated @NotNull @NotNull ServerSchedulerTask runTaskAsynchronously(@NotNull @NotNull ServerRunnable task) throws IllegalArgumentException Deprecated.- Parameters:
task
- the task to be run- Returns:
- a ServerSchedulerTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLater
void runTaskLater(@NotNull @NotNull Consumer<? super ServerSchedulerTask> task, long delay) throws IllegalArgumentException Returns a task that will run after the specified number of server ticks.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the task- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLater
@Deprecated @NotNull @NotNull ServerSchedulerTask runTaskLater(@NotNull @NotNull ServerRunnable task, long delay) throws IllegalArgumentException Deprecated.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the task- Returns:
- a ServerSchedulerTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLaterAsynchronously
void runTaskLaterAsynchronously(@NotNull @NotNull Consumer<? super ServerSchedulerTask> task, long delay) throws IllegalArgumentException Returns a task that will run asynchronously after the specified number of server ticks.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the task- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLaterAsynchronously
@Deprecated @NotNull @NotNull ServerSchedulerTask runTaskLaterAsynchronously(@NotNull @NotNull ServerRunnable task, long delay) throws IllegalArgumentException Deprecated.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the task- Returns:
- a ServerSchedulerTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimer
void runTaskTimer(@NotNull @NotNull Consumer<? super ServerSchedulerTask> task, long delay, long period) throws IllegalArgumentException Returns a task that will repeatedly run until cancelled, starting after the specified number of server ticks.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the taskperiod
- the ticks to wait between runs- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimer
@Deprecated @NotNull @NotNull ServerSchedulerTask runTaskTimer(@NotNull @NotNull ServerRunnable task, long delay, long period) throws IllegalArgumentException Deprecated.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the taskperiod
- the ticks to wait between runs- Returns:
- a ServerSchedulerTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimerAsynchronously
void runTaskTimerAsynchronously(@NotNull @NotNull Consumer<? super ServerSchedulerTask> task, long delay, long period) throws IllegalArgumentException Returns a task that will repeatedly run asynchronously until cancelled, starting after the specified number of server ticks.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the task for the first timeperiod
- the ticks to wait between runs- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimerAsynchronously
@Deprecated @NotNull @NotNull ServerSchedulerTask runTaskTimerAsynchronously(@NotNull @NotNull ServerRunnable task, long delay, long period) throws IllegalArgumentException Deprecated.- Parameters:
task
- the task to be rundelay
- the ticks to wait before running the task for the first timeperiod
- the ticks to wait between runs- Returns:
- a ServerSchedulerTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-