mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-01 05:47:45 +01:00
Scheduler
By: Raphfrk <raphfrk@gmail.com>
This commit is contained in:
parent
d7e0bed36b
commit
a5886d6edc
@ -5,6 +5,7 @@ import org.bukkit.entity.Player;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
|
||||
/**
|
||||
* Represents a server implementation
|
||||
@ -75,6 +76,13 @@ public interface Server {
|
||||
*/
|
||||
public PluginManager getPluginManager();
|
||||
|
||||
/**
|
||||
* Gets the Scheduler for managing scheduled events
|
||||
*
|
||||
* @return Scheduler for this Server instance
|
||||
*/
|
||||
public BukkitScheduler getScheduler();
|
||||
|
||||
/**
|
||||
* Gets a list of all worlds on this server
|
||||
*
|
||||
|
@ -185,6 +185,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
public void disablePlugin(final Plugin plugin) {
|
||||
if (plugin.isEnabled()) {
|
||||
plugin.getPluginLoader().disablePlugin(plugin);
|
||||
server.getScheduler().cancelTasks(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,92 @@
|
||||
package org.bukkit.scheduler;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public interface BukkitScheduler {
|
||||
|
||||
/**
|
||||
* Schedules a once off task to occur after a delay
|
||||
* This task will be executed by the main server thread
|
||||
*
|
||||
* @param Plugin Plugin that owns the task
|
||||
* @param Runnable Task to be executed
|
||||
* @param long Delay in server ticks before executing task
|
||||
* @return int Task id number (-1 if scheduling failed)
|
||||
*/
|
||||
public int scheduleSyncDelayedTask(Plugin plugin, Runnable task, long delay);
|
||||
|
||||
/**
|
||||
* Schedules a once off task to occur as soon as possible
|
||||
* This task will be executed by the main server thread
|
||||
*
|
||||
* @param Plugin Plugin that owns the task
|
||||
* @param Runnable Task to be executed
|
||||
* @return int Task id number (-1 if scheduling failed)
|
||||
*/
|
||||
public int scheduleSyncDelayedTask(Plugin plugin, Runnable task);
|
||||
|
||||
/**
|
||||
* Schedules a repeating task
|
||||
* This task will be executed by the main server thread
|
||||
*
|
||||
* @param Plugin Plugin that owns the task
|
||||
* @param Runnable Task to be executed
|
||||
* @param long Delay in server ticks before executing first repeat
|
||||
* @param long Period in server ticks of the task
|
||||
* @return int Task id number (-1 if scheduling failed)
|
||||
*/
|
||||
public int scheduleSyncRepeatingTask(Plugin plugin, Runnable task, long delay, long period);
|
||||
|
||||
/**
|
||||
* Schedules a once off task to occur after a delay
|
||||
* This task will be executed by a thread managed by the scheduler
|
||||
*
|
||||
* @param Plugin Plugin that owns the task
|
||||
* @param Runnable Task to be executed
|
||||
* @param long Delay in server ticks before executing task
|
||||
* @return int Task id number (-1 if scheduling failed)
|
||||
*/
|
||||
public int scheduleAsyncDelayedTask(Plugin plugin, Runnable task, long delay);
|
||||
|
||||
/**
|
||||
* Schedules a once off task to occur as soon as possible
|
||||
* This task will be executed by a thread managed by the scheduler
|
||||
*
|
||||
* @param Plugin Plugin that owns the task
|
||||
* @param Runnable Task to be executed
|
||||
* @return int Task id number (-1 if scheduling failed)
|
||||
*/
|
||||
public int scheduleAsyncDelayedTask(Plugin plugin, Runnable task);
|
||||
|
||||
/**
|
||||
* Schedules a repeating task
|
||||
* This task will be executed by a thread managed by the scheduler
|
||||
*
|
||||
* @param Plugin Plugin that owns the task
|
||||
* @param Runnable Task to be executed
|
||||
* @param long Delay in server ticks before executing first repeat
|
||||
* @param long Period in server ticks of the task
|
||||
* @return int Task id number (-1 if scheduling failed)
|
||||
*/
|
||||
public int scheduleAsyncRepeatingTask(Plugin plugin, Runnable task, long delay, long period);
|
||||
|
||||
/**
|
||||
* Removes task from scheduler
|
||||
*
|
||||
* @param int Id number of task to be removed
|
||||
*/
|
||||
public void cancelTask(int taskId);
|
||||
|
||||
/**
|
||||
* Removes all tasks associated with a particular plugin from the scheduler
|
||||
*
|
||||
* @param Plugin Owner of tasks to be removed
|
||||
*/
|
||||
public void cancelTasks(Plugin plugin);
|
||||
|
||||
/**
|
||||
* Removes all tasks from the scheduler
|
||||
*/
|
||||
public void cancelAllTasks();
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user