3
0
Mirror von https://github.com/IntellectualSites/FastAsyncWorldEdit.git synchronisiert 2024-10-03 12:11:04 +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
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
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();
}
@Override
public void async(@NotNull final Runnable runnable) {
backgroundExecutor.submit(runnable);
Bukkit.getAsyncScheduler().runNow(WorldEditPlugin.getInstance(), (s) -> runnable.run());
}
@Override
public void task(@NotNull final Runnable runnable) {
fail();
Bukkit.getGlobalRegionScheduler().execute(WorldEditPlugin.getInstance(), runnable);
}
@Override
@ -60,7 +72,7 @@ public class FoliaTaskManager extends TaskManager {
@Override
public void later(@NotNull final Runnable runnable, final int delay) {
fail();
Bukkit.getGlobalRegionScheduler().runDelayed(WorldEditPlugin.getInstance(), scheduledTask -> runnable.run(), delay);
}
@Override
@ -142,7 +154,7 @@ public class FoliaTaskManager extends TaskManager {
MethodHandle executeForPlayer;
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");
executeForLocation = lookup.findVirtual(
regionisedSchedulerClass,