package com.plotsquared.nukkit.util; import cn.nukkit.scheduler.TaskHandler; import com.intellectualcrafters.plot.util.TaskManager; import com.plotsquared.nukkit.NukkitMain; import java.util.HashMap; import java.util.concurrent.atomic.AtomicInteger; public class NukkitTaskManager extends TaskManager { private final NukkitMain plugin; public NukkitTaskManager(NukkitMain bukkitMain) { this.plugin = bukkitMain; } private AtomicInteger index = new AtomicInteger(0); private HashMap<Integer, Integer> tasks = new HashMap<>(); @Override public int taskRepeat(Runnable r, int interval) { TaskHandler task = this.plugin.getServer().getScheduler().scheduleRepeatingTask(r, interval, false); return task.getTaskId(); } @SuppressWarnings("deprecation") @Override public int taskRepeatAsync(Runnable r, int interval) { TaskHandler task = this.plugin.getServer().getScheduler().scheduleRepeatingTask(r, interval, true); return task.getTaskId(); } @Override public void taskAsync(Runnable r) { if (r == null) { return; } this.plugin.getServer().getScheduler().scheduleTask(r, true); } @Override public void task(Runnable r) { if (r == null) { return; } this.plugin.getServer().getScheduler().scheduleTask(r, false); } @Override public void taskLater(Runnable r, int delay) { if (r == null) { return; } this.plugin.getServer().getScheduler().scheduleDelayedTask(r, delay); } @Override public void taskLaterAsync(Runnable r, int delay) { this.plugin.getServer().getScheduler().scheduleDelayedTask(r, delay, true); } @Override public void cancelTask(int task) { if (task != -1) { this.plugin.getServer().getScheduler().cancelTask(task); } } }