package net.shockverse.survivalgames.extras; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import net.shockverse.survivalgames.interfaces.Task; import org.bukkit.event.Cancellable; /** * * @author Tagette */ public class TaskManager { public HashMap<String, List<Task>> tasks; public TaskManager() { tasks = new HashMap<String, List<Task>>(); } public List<Task> getTasks() { List<Task> allTasks = new ArrayList<Task>(); for(String tag : tasks.keySet()) { allTasks.addAll(tasks.get(tag)); } return allTasks; } public List<Task> getTasks(String tag) { return tasks.get(tag); } public void addTask(Task task) { addTask(null, task); } public void addTask(String tag, Task task) { if(!tasks.containsKey(tag)) tasks.put(tag, new ArrayList<Task>()); tasks.get(tag).add(task); } public void clearTasks() { for(String tag : tasks.keySet()) clearTasks(tag); tasks.clear(); } public void clearTasks(String tag) { if(tasks.containsKey(tag)) { for(Task task : tasks.get(tag)) { if(task instanceof Cancellable) { ((Cancellable) task).setCancelled(true); } } tasks.get(tag).clear(); } } }