LoParkour/src/main/java/dev/loki/loparkour/scheduler/BukkitBackend.java

36 lines
987 B
Java

package dev.loki.loparkour.scheduler;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
/**
* Scheduler backend for Bukkit/Paper servers.
*/
final class BukkitBackend implements Scheduler.Backend {
private final Plugin plugin;
BukkitBackend(Plugin plugin) {
this.plugin = plugin;
}
@Override
public ScheduledTask run(Runnable task) {
return Bukkit.getScheduler().runTask(plugin, task)::cancel;
}
@Override
public ScheduledTask runAsync(Runnable task) {
return Bukkit.getScheduler().runTaskAsynchronously(plugin, task)::cancel;
}
@Override
public ScheduledTask runLater(Runnable task, long delayTicks) {
return Bukkit.getScheduler().runTaskLater(plugin, task, delayTicks)::cancel;
}
@Override
public ScheduledTask runTimer(Runnable task, long delayTicks, long periodTicks) {
return Bukkit.getScheduler().runTaskTimer(plugin, task, delayTicks, periodTicks)::cancel;
}
}