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.voidcancelTask(int taskId) Removes task from scheduler.voidRemoves 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.booleanisCurrentlyRunning(int taskId) Check if the task currently running.booleanisQueued(int taskId) Check if the task queued to be run later.voidrunTask(@NotNull Consumer<? super ServerSchedulerTask> task) Returns a task that will run on the next server tick.@NotNull ServerSchedulerTaskrunTask(@NotNull ServerRunnable task) Deprecated.voidrunTaskAsynchronously(@NotNull Consumer<? super ServerSchedulerTask> task) Returns a task that will run asynchronously.@NotNull ServerSchedulerTaskrunTaskAsynchronously(@NotNull ServerRunnable task) Deprecated.voidrunTaskLater(@NotNull Consumer<? super ServerSchedulerTask> task, long delay) Returns a task that will run after the specified number of server ticks.@NotNull ServerSchedulerTaskrunTaskLater(@NotNull ServerRunnable task, long delay) Deprecated.voidrunTaskLaterAsynchronously(@NotNull Consumer<? super ServerSchedulerTask> task, long delay) Returns a task that will run asynchronously after the specified number of server ticks.@NotNull ServerSchedulerTaskrunTaskLaterAsynchronously(@NotNull ServerRunnable task, long delay) Deprecated.voidrunTaskTimer(@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 ServerSchedulerTaskrunTaskTimer(@NotNull ServerRunnable task, long delay, long period) Deprecated.voidrunTaskTimerAsynchronously(@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 ServerSchedulerTaskrunTaskTimerAsynchronously(@NotNull ServerRunnable task, long delay, long period) Deprecated.intscheduleAsyncDelayedTask(@NotNull ServerRunnable task) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskintscheduleAsyncDelayedTask(@NotNull ServerRunnable task, long delay) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskintscheduleAsyncRepeatingTask(@NotNull ServerRunnable task, long delay, long period) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskintscheduleSyncDelayedTask(@NotNull ServerRunnable task) Deprecated.intscheduleSyncDelayedTask(@NotNull ServerRunnable task, long delay) Deprecated.intscheduleSyncRepeatingTask(@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
-