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; } }