Interface ServerScheduler

All Known Implementing Classes:
Scheduler

public interface ServerScheduler
  • Method Details

    • scheduleSyncDelayedTask

      @Deprecated int scheduleSyncDelayedTask(@NotNull @NotNull ServerRunnable task, long delay)
      Deprecated.
      Parameters:
      task - Task to be executed
      delay - Delay in server ticks before executing task
      Returns:
      Task id number (-1 if scheduling failed)
    • scheduleSyncDelayedTask

      @Deprecated int scheduleSyncDelayedTask(@NotNull @NotNull ServerRunnable task)
      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 executed
      delay - Delay in server ticks before executing first repeat
      period - Period in server ticks of the task
      Returns:
      Task id number (-1 if scheduling failed)
    • scheduleAsyncDelayedTask

      @Deprecated int scheduleAsyncDelayedTask(@NotNull @NotNull ServerRunnable task, long delay)
      Deprecated.
      This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
      Schedules 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 executed
      delay - Delay in server ticks before executing task
      Returns:
      Task id number (-1 if scheduling failed)
    • scheduleAsyncDelayedTask

      @Deprecated int scheduleAsyncDelayedTask(@NotNull @NotNull ServerRunnable task)
      Deprecated.
      This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
      Schedules 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" task
      Schedules a repeating task. This task will be executed by a thread managed by the scheduler.
      Parameters:
      task - Task to be executed
      delay - Delay in server ticks before executing first repeat
      period - Period in server ticks of the task
      Returns:
      Task id number (-1 if scheduling failed)
    • callSyncMethod

      @NotNull <T> @NotNull Future<T> callSyncMethod(@NotNull @NotNull Callable<T> task)
      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

      @NotNull @NotNull List<ServerWorker> getActiveWorkers()
      Returns a list of all active workers.

      This list contains asynch tasks that are being executed by separate threads.

      Returns:
      Active workers
    • getPendingTasks

      @NotNull @NotNull List<ServerSchedulerTask> 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 null
      IllegalArgumentException - 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 null
      IllegalArgumentException - 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 null
      IllegalArgumentException - 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 null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task
      Returns:
      a ServerSchedulerTask that contains the id number
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task
      Returns:
      a ServerSchedulerTask that contains the id number
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task
      period - the ticks to wait between runs
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task
      period - the ticks to wait between runs
      Returns:
      a ServerSchedulerTask that contains the id number
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task for the first time
      period - the ticks to wait between runs
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - 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 run
      delay - the ticks to wait before running the task for the first time
      period - the ticks to wait between runs
      Returns:
      a ServerSchedulerTask that contains the id number
      Throws:
      IllegalArgumentException - if plugin is null
      IllegalArgumentException - if task is null