Interface BukkitScheduler


  • public interface BukkitScheduler
    • Method Detail

      • scheduleSyncDelayedTask

        int scheduleSyncDelayedTask​(@NotNull
                                    Plugin plugin,
                                    @NotNull
                                    Runnable task,
                                    long delay)
        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 task
        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
                                    Plugin plugin,
                                    @NotNull
                                    BukkitRunnable task,
                                    long delay)
        Parameters:
        plugin - Plugin that owns the task
        task - Task to be executed
        delay - Delay in server ticks before executing task
        Returns:
        Task id number (-1 if scheduling failed)
      • scheduleSyncDelayedTask

        int scheduleSyncDelayedTask​(@NotNull
                                    Plugin plugin,
                                    @NotNull
                                    Runnable task)
        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 task
        task - 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 task
        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)
      • scheduleSyncRepeatingTask

        @Deprecated
        int scheduleSyncRepeatingTask​(@NotNull
                                      Plugin plugin,
                                      @NotNull
                                      BukkitRunnable task,
                                      long delay,
                                      long period)
        Parameters:
        plugin - Plugin that owns the task
        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
                                     Plugin plugin,
                                     @NotNull
                                     Runnable task,
                                     long delay)
        Deprecated.
        This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
        Asynchronous 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 task
        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
                                     Plugin plugin,
                                     @NotNull
                                     Runnable task)
        Deprecated.
        This name is misleading, as it does not schedule "a sync" task, but rather, "an async" task
        Asynchronous 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 task
        task - 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" task
        Asynchronous 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 task
        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> Future<T> callSyncMethod​(@NotNull
                                     Plugin plugin,
                                     @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:
        plugin - Plugin that owns the task
        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​(@NotNull
                         Plugin plugin)
        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

        @NotNull
        List<BukkitWorker> 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
        List<BukkitTask> getPendingTasks()
        Returns a list of all pending tasks. The ordering of the tasks is not related to their order of execution.
        Returns:
        Active workers
      • 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 task
        task - the task to be run
        Returns:
        a BukkitTask that contains the id number
        Throws:
        IllegalArgumentException - if plugin is null
        IllegalArgumentException - if task is null
      • runTaskAsynchronously

        void runTaskAsynchronously​(@NotNull
                                   Plugin plugin,
                                   @NotNull
                                   Consumer<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 task
        task - the task to be run
        Throws:
        IllegalArgumentException - if plugin is null
        IllegalArgumentException - 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 task
        task - the task to be run
        delay - the ticks to wait before running the task
        Returns:
        a BukkitTask that contains the id number
        Throws:
        IllegalArgumentException - if plugin is null
        IllegalArgumentException - 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 task
        task - the task to be run
        delay - the ticks to wait before running the task
        Returns:
        a BukkitTask that contains the id number
        Throws:
        IllegalArgumentException - if plugin is null
        IllegalArgumentException - if task is null
      • runTaskLaterAsynchronously

        void runTaskLaterAsynchronously​(@NotNull
                                        Plugin plugin,
                                        @NotNull
                                        Consumer<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 task
        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
      • 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 task
        task - the task to be run
        delay - the ticks to wait before running the task
        period - the ticks to wait between runs
        Returns:
        a BukkitTask that contains the id number
        Throws:
        IllegalArgumentException - if plugin is null
        IllegalArgumentException - if task is null
      • runTaskTimer

        void runTaskTimer​(@NotNull
                          Plugin plugin,
                          @NotNull
                          Consumer<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 task
        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
      • 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 task
        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 BukkitTask that contains the id number
        Throws:
        IllegalArgumentException - if plugin is null
        IllegalArgumentException - if task is null
      • runTaskTimerAsynchronously

        void runTaskTimerAsynchronously​(@NotNull
                                        Plugin plugin,
                                        @NotNull
                                        Consumer<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 task
        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