Interface BukkitScheduler
-
Method Summary
Modifier and TypeMethodDescription<T> Future
<T> callSyncMethod
(Plugin plugin, Callable<T> task) Calls a method on the main thread and returns a Future object.void
cancelTask
(int taskId) Removes task from scheduler.void
cancelTasks
(Plugin plugin) Removes all tasks associated with a particular plugin from the scheduler.Returns a list of all active workers.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.Returns a task that will run on the next server tick.void
runTask
(Plugin plugin, Consumer<? super BukkitTask> task) Returns a task that will run on the next server tick.runTask
(Plugin plugin, BukkitRunnable task) Deprecated.runTaskAsynchronously
(Plugin plugin, Runnable task) Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.void
runTaskAsynchronously
(Plugin plugin, Consumer<? super BukkitTask> task) Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.runTaskAsynchronously
(Plugin plugin, BukkitRunnable task) Deprecated.runTaskLater
(Plugin plugin, Runnable task, long delay) Returns a task that will run after the specified number of server ticks.void
runTaskLater
(Plugin plugin, Consumer<? super BukkitTask> task, long delay) Returns a task that will run after the specified number of server ticks.runTaskLater
(Plugin plugin, BukkitRunnable task, long delay) Deprecated.runTaskLaterAsynchronously
(Plugin plugin, Runnable task, long delay) Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.void
runTaskLaterAsynchronously
(Plugin plugin, Consumer<? super BukkitTask> task, long delay) Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.runTaskLaterAsynchronously
(Plugin plugin, BukkitRunnable task, long delay) Deprecated.runTaskTimer
(Plugin plugin, Runnable task, long delay, long period) Returns a task that will repeatedly run until cancelled, starting after the specified number of server ticks.void
runTaskTimer
(Plugin plugin, Consumer<? super BukkitTask> task, long delay, long period) Returns a task that will repeatedly run until cancelled, starting after the specified number of server ticks.runTaskTimer
(Plugin plugin, BukkitRunnable task, long delay, long period) Deprecated.runTaskTimerAsynchronously
(Plugin plugin, Runnable task, long delay, long period) Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.void
runTaskTimerAsynchronously
(Plugin plugin, Consumer<? super BukkitTask> task, long delay, long period) Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.runTaskTimerAsynchronously
(Plugin plugin, BukkitRunnable task, long delay, long period) Deprecated.int
scheduleAsyncDelayedTask
(Plugin plugin, Runnable task) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskint
scheduleAsyncDelayedTask
(Plugin plugin, Runnable task, long delay) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskint
scheduleAsyncRepeatingTask
(Plugin plugin, Runnable task, long delay, long period) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskint
scheduleSyncDelayedTask
(Plugin plugin, Runnable task) Schedules a once off task to occur as soon as possible.int
scheduleSyncDelayedTask
(Plugin plugin, Runnable task, long delay) Schedules a once off task to occur after a delay.int
scheduleSyncDelayedTask
(Plugin plugin, BukkitRunnable task) Deprecated.int
scheduleSyncDelayedTask
(Plugin plugin, BukkitRunnable task, long delay) Deprecated.int
scheduleSyncRepeatingTask
(Plugin plugin, Runnable task, long delay, long period) Schedules a repeating task.int
scheduleSyncRepeatingTask
(Plugin plugin, BukkitRunnable task, long delay, long period) Deprecated.
-
Method Details
-
scheduleSyncDelayedTask
Schedules a once off task to occur after a delay.This task will be executed by the main server thread.
- Parameters:
plugin
- Plugin that owns the tasktask
- Task to be executeddelay
- Delay in server ticks before executing task- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleSyncDelayedTask
@Deprecated int scheduleSyncDelayedTask(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay) Deprecated.- Parameters:
plugin
- Plugin that owns the tasktask
- Task to be executeddelay
- Delay in server ticks before executing task- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleSyncDelayedTask
Schedules a once off task to occur as soon as possible.This task will be executed by the main server thread.
- Parameters:
plugin
- Plugin that owns the tasktask
- Task to be executed- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleSyncDelayedTask
Deprecated.- Parameters:
plugin
- Plugin that owns the tasktask
- Task to be executed- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleSyncRepeatingTask
int scheduleSyncRepeatingTask(@NotNull Plugin plugin, @NotNull Runnable task, long delay, long period) Schedules a repeating task.This task will be executed by the main server thread.
- Parameters:
plugin
- Plugin that owns the tasktask
- 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)
-
scheduleSyncRepeatingTask
@Deprecated int scheduleSyncRepeatingTask(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay, long period) Deprecated.- Parameters:
plugin
- Plugin that owns the tasktask
- 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 int scheduleAsyncDelayedTask(@NotNull Plugin plugin, @NotNull Runnable task, long delay) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskAsynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Schedules a once off task to occur after a delay. This task will be executed by a thread managed by the scheduler.
- Parameters:
plugin
- Plugin that owns the tasktask
- 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" taskAsynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Schedules a once off task to occur as soon as possible. This task will be executed by a thread managed by the scheduler.
- Parameters:
plugin
- Plugin that owns the tasktask
- Task to be executed- Returns:
- Task id number (-1 if scheduling failed)
-
scheduleAsyncRepeatingTask
@Deprecated int scheduleAsyncRepeatingTask(@NotNull Plugin plugin, @NotNull Runnable task, long delay, long period) Deprecated.This name is misleading, as it does not schedule "a sync" task, but rather, "an async" taskAsynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Schedules a repeating task. This task will be executed by a thread managed by the scheduler.
- Parameters:
plugin
- Plugin that owns the tasktask
- 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:
plugin
- Plugin that owns the tasktask
- 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
Removes all tasks associated with a particular plugin from the scheduler.- Parameters:
plugin
- Owner of tasks to be removed
-
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
@NotNull BukkitTask runTask(@NotNull Plugin plugin, @NotNull Runnable task) throws IllegalArgumentException Returns a task that will run on the next server tick.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be run- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTask
void runTask(@NotNull Plugin plugin, @NotNull Consumer<? super BukkitTask> task) throws IllegalArgumentException Returns a task that will run on the next server tick.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be run- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTask
@Deprecated @NotNull BukkitTask runTask(@NotNull Plugin plugin, @NotNull BukkitRunnable task) throws IllegalArgumentException Deprecated.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be run- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskAsynchronously
@NotNull BukkitTask runTaskAsynchronously(@NotNull Plugin plugin, @NotNull Runnable task) throws IllegalArgumentException Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Returns a task that will run asynchronously.
- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be run- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskAsynchronously
void runTaskAsynchronously(@NotNull Plugin plugin, @NotNull Consumer<? super BukkitTask> task) throws IllegalArgumentException Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Returns a task that will run asynchronously.
- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be run- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskAsynchronously
@Deprecated @NotNull BukkitTask runTaskAsynchronously(@NotNull Plugin plugin, @NotNull BukkitRunnable task) throws IllegalArgumentException Deprecated.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be run- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLater
@NotNull BukkitTask runTaskLater(@NotNull Plugin plugin, @NotNull Runnable task, long delay) throws IllegalArgumentException Returns a task that will run after the specified number of server ticks.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be rundelay
- the ticks to wait before running the task- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLater
void runTaskLater(@NotNull Plugin plugin, @NotNull Consumer<? super BukkitTask> task, long delay) throws IllegalArgumentException Returns a task that will run after the specified number of server ticks.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- 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 BukkitTask runTaskLater(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay) throws IllegalArgumentException Deprecated.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be rundelay
- the ticks to wait before running the task- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLaterAsynchronously
@NotNull BukkitTask runTaskLaterAsynchronously(@NotNull Plugin plugin, @NotNull Runnable task, long delay) throws IllegalArgumentException Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Returns a task that will run asynchronously after the specified number of server ticks.
- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be rundelay
- the ticks to wait before running the task- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskLaterAsynchronously
void runTaskLaterAsynchronously(@NotNull Plugin plugin, @NotNull Consumer<? super BukkitTask> task, long delay) throws IllegalArgumentException Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Returns a task that will run asynchronously after the specified number of server ticks.
- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- 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 BukkitTask runTaskLaterAsynchronously(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay) throws IllegalArgumentException Deprecated.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be rundelay
- the ticks to wait before running the task- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimer
@NotNull BukkitTask runTaskTimer(@NotNull Plugin plugin, @NotNull Runnable 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:
plugin
- the reference to the plugin scheduling tasktask
- the task to be rundelay
- the ticks to wait before running the taskperiod
- the ticks to wait between runs- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimer
void runTaskTimer(@NotNull Plugin plugin, @NotNull Consumer<? super BukkitTask> 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:
plugin
- the reference to the plugin scheduling tasktask
- 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 BukkitTask runTaskTimer(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay, long period) throws IllegalArgumentException Deprecated.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- the task to be rundelay
- the ticks to wait before running the taskperiod
- the ticks to wait between runs- Returns:
- a BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimerAsynchronously
@NotNull BukkitTask runTaskTimerAsynchronously(@NotNull Plugin plugin, @NotNull Runnable task, long delay, long period) throws IllegalArgumentException Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Returns a task that will repeatedly run asynchronously until cancelled, starting after the specified number of server ticks.
- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- 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 BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
runTaskTimerAsynchronously
void runTaskTimerAsynchronously(@NotNull Plugin plugin, @NotNull Consumer<? super BukkitTask> task, long delay, long period) throws IllegalArgumentException Asynchronous tasks should never access any API in Bukkit. Great care should be taken to assure the thread-safety of asynchronous tasks.Returns a task that will repeatedly run asynchronously until cancelled, starting after the specified number of server ticks.
- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- 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 BukkitTask runTaskTimerAsynchronously(@NotNull Plugin plugin, @NotNull BukkitRunnable task, long delay, long period) throws IllegalArgumentException Deprecated.- Parameters:
plugin
- the reference to the plugin scheduling tasktask
- 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 BukkitTask that contains the id number
- Throws:
IllegalArgumentException
- if plugin is nullIllegalArgumentException
- if task is null
-
BukkitRunnable.runTask(Plugin)