Initial commit
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
package tf.tuff.util;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import io.github.retrooper.packetevents.util.folia.FoliaScheduler;
|
||||
import io.github.retrooper.packetevents.util.folia.TaskWrapper;
|
||||
|
||||
public final class SchedulerCompat {
|
||||
|
||||
private SchedulerCompat() {
|
||||
}
|
||||
|
||||
public static boolean isFolia() {
|
||||
return FoliaScheduler.isFolia();
|
||||
}
|
||||
|
||||
public static void runGlobal(Plugin plugin, Runnable task) {
|
||||
FoliaScheduler.getGlobalRegionScheduler().execute(plugin, task);
|
||||
}
|
||||
|
||||
public static TaskWrapper runGlobalLater(Plugin plugin, Runnable task, long delayTicks) {
|
||||
return FoliaScheduler.getGlobalRegionScheduler().runDelayed(plugin, scheduledTask -> task.run(), delayTicks);
|
||||
}
|
||||
|
||||
public static TaskWrapper runGlobalTimer(Plugin plugin, Runnable task, long delayTicks, long periodTicks) {
|
||||
return FoliaScheduler.getGlobalRegionScheduler().runAtFixedRate(plugin, scheduledTask -> task.run(), delayTicks, periodTicks);
|
||||
}
|
||||
|
||||
public static void runAsync(Plugin plugin, Runnable task) {
|
||||
FoliaScheduler.getAsyncScheduler().runNow(plugin, scheduledTask -> task.run());
|
||||
}
|
||||
|
||||
public static TaskWrapper runAsyncLater(Plugin plugin, Runnable task, long delayTicks) {
|
||||
return FoliaScheduler.getAsyncScheduler().runDelayed(plugin, scheduledTask -> task.run(), delayTicks * 50L, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
public static void runRegion(Plugin plugin, World world, int chunkX, int chunkZ, Runnable task) {
|
||||
FoliaScheduler.getRegionScheduler().execute(plugin, world, chunkX, chunkZ, task);
|
||||
}
|
||||
|
||||
public static TaskWrapper runRegionLater(Plugin plugin, World world, int chunkX, int chunkZ, Runnable task, long delayTicks) {
|
||||
return FoliaScheduler.getRegionScheduler().runDelayed(plugin, world, chunkX, chunkZ, scheduledTask -> task.run(), delayTicks);
|
||||
}
|
||||
|
||||
public static void runRegion(Plugin plugin, Location location, Runnable task) {
|
||||
FoliaScheduler.getRegionScheduler().execute(plugin, location, task);
|
||||
}
|
||||
|
||||
public static TaskWrapper runRegionLater(Plugin plugin, Location location, Runnable task, long delayTicks) {
|
||||
return FoliaScheduler.getRegionScheduler().runDelayed(plugin, location, scheduledTask -> task.run(), delayTicks);
|
||||
}
|
||||
|
||||
public static void runEntity(Entity entity, Plugin plugin, Runnable task) {
|
||||
FoliaScheduler.getEntityScheduler().execute(entity, plugin, task, () -> {
|
||||
}, 0L);
|
||||
}
|
||||
|
||||
public static TaskWrapper runEntityLater(Entity entity, Plugin plugin, Runnable task, long delayTicks) {
|
||||
return FoliaScheduler.getEntityScheduler().runDelayed(entity, plugin, scheduledTask -> task.run(), () -> {
|
||||
}, delayTicks);
|
||||
}
|
||||
|
||||
public static TaskWrapper runEntityTimer(Entity entity, Plugin plugin, Runnable task, long delayTicks, long periodTicks) {
|
||||
return FoliaScheduler.getEntityScheduler().runAtFixedRate(entity, plugin, scheduledTask -> task.run(), () -> {
|
||||
}, delayTicks, periodTicks);
|
||||
}
|
||||
|
||||
public static void sendPluginMessage(Plugin plugin, Player player, String channel, byte[] payload) {
|
||||
if (player == null || channel == null || payload == null || !player.isOnline()) return;
|
||||
runEntity(player, plugin, () -> {
|
||||
if (player.isOnline()) {
|
||||
player.sendPluginMessage(plugin, channel, payload);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user