Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class TaskHandler {
- //Static Objects
- private static TaskHandler instance;
- //Static Methods
- public static TaskHandler getInstance() {
- if (instance == null) instance = new TaskHandler();
- return instance;
- }
- //Objects
- private ArrayList<Task> taskList;
- private ArrayList<Task> addList;
- private ArrayList<Task> removeList;
- private int taskID;
- private boolean update;
- //Constructor
- public TaskHandler() {
- taskList = new ArrayList<Task>();
- addList = new ArrayList<Task>();
- removeList = new ArrayList<Task>();
- taskID = 0;
- update = false;
- initTask();
- }
- //Object Methods
- private void initTask() {
- taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Task.plugin, new Runnable() {
- @Override
- public void run() {
- if (update) {
- for (Task task: addList) {
- taskList.add(task);
- }
- addList.clear();
- for (Task task: removeList) {
- taskList.remove(task);
- }
- removeList.clear();
- update = false;
- }
- for (Task task: taskList) {
- task.updateTicks();
- }
- }
- }, 0, 1);
- }
- private void cancelTask() {
- Bukkit.getScheduler().cancelTask(taskID);
- }
- public void addTask(Task task) {
- addList.add(task);
- update = true;
- }
- public void removeTask(Task task) {
- if (!taskList.contains(task)) return;
- removeList.add(task);
- update = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement