3
0
Mirror von https://github.com/IntellectualSites/FastAsyncWorldEdit.git synchronisiert 2024-10-03 20:21:05 +02:00

Port taskmanager for folia

Dieser Commit ist enthalten in:
Phillip Glanz 2023-04-02 17:34:08 +02:00 committet von Phillipp Glanz
Ursprung d6f1d28c31
Commit fb91ff415c

Datei anzeigen

@ -34,23 +34,35 @@ public class FoliaTaskManager extends TaskManager {
@Override @Override
public int repeat(@NotNull final Runnable runnable, final int interval) { public int repeat(@NotNull final Runnable runnable, final int interval) {
return fail(); Bukkit.getGlobalRegionScheduler().runAtFixedRate(
WorldEditPlugin.getInstance(),
scheduledTask -> runnable.run(),
1,
interval
);
return 0;
} }
@Override @Override
public int repeatAsync(@NotNull final Runnable runnable, final int interval) { public int repeatAsync(@NotNull final Runnable runnable, final int interval) {
backgroundExecutor.scheduleAtFixedRate(runnable, 0, ticksToMs(interval), TimeUnit.MILLISECONDS); Bukkit.getAsyncScheduler().runAtFixedRate(
WorldEditPlugin.getInstance(),
scheduledTask -> runnable.run(),
0,
ticksToMs(interval),
TimeUnit.MILLISECONDS
);
return idCounter.getAndIncrement(); return idCounter.getAndIncrement();
} }
@Override @Override
public void async(@NotNull final Runnable runnable) { public void async(@NotNull final Runnable runnable) {
backgroundExecutor.submit(runnable); Bukkit.getAsyncScheduler().runNow(WorldEditPlugin.getInstance(), (s) -> runnable.run());
} }
@Override @Override
public void task(@NotNull final Runnable runnable) { public void task(@NotNull final Runnable runnable) {
fail(); Bukkit.getGlobalRegionScheduler().execute(WorldEditPlugin.getInstance(), runnable);
} }
@Override @Override
@ -60,7 +72,7 @@ public class FoliaTaskManager extends TaskManager {
@Override @Override
public void later(@NotNull final Runnable runnable, final int delay) { public void later(@NotNull final Runnable runnable, final int delay) {
fail(); Bukkit.getGlobalRegionScheduler().runDelayed(WorldEditPlugin.getInstance(), scheduledTask -> runnable.run(), delay);
} }
@Override @Override
@ -142,7 +154,7 @@ public class FoliaTaskManager extends TaskManager {
MethodHandle executeForPlayer; MethodHandle executeForPlayer;
try { try {
Class<?> regionisedSchedulerClass = Class.forName("io.papermc.paper.threadedregions.scheduler.RegionisedScheduler"); Class<?> regionisedSchedulerClass = Class.forName("io.papermc.paper.threadedregions.scheduler.FoliaRegionScheduler");
final Method method = Bukkit.class.getDeclaredMethod("getRegionScheduler"); final Method method = Bukkit.class.getDeclaredMethod("getRegionScheduler");
executeForLocation = lookup.findVirtual( executeForLocation = lookup.findVirtual(
regionisedSchedulerClass, regionisedSchedulerClass,