mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-03 23:07:40 +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 java.util.List;
|
||||||
|
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.bukkit.scheduler.BukkitScheduler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a server implementation
|
* Represents a server implementation
|
||||||
@ -75,6 +76,13 @@ public interface Server {
|
|||||||
*/
|
*/
|
||||||
public PluginManager getPluginManager();
|
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
|
* 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) {
|
public void disablePlugin(final Plugin plugin) {
|
||||||
if (plugin.isEnabled()) {
|
if (plugin.isEnabled()) {
|
||||||
plugin.getPluginLoader().disablePlugin(plugin);
|
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