1+ package xyz .webmc .wlib .util ;
2+
3+ import java .util .concurrent .CompletableFuture ;
4+ import java .util .concurrent .TimeUnit ;
5+
6+ import com .tcoded .folialib .FoliaLib ;
7+ import com .tcoded .folialib .impl .PlatformScheduler ;
8+ import com .tcoded .folialib .wrapper .task .WrappedTask ;
9+ import org .bukkit .Location ;
10+ import org .bukkit .entity .Entity ;
11+ import org .bukkit .plugin .Plugin ;
12+
13+ public final class SchedulerUtil {
14+ private static FoliaLib lib ;
15+ private static PlatformScheduler sch ;
16+
17+ public static final void init (final Plugin plugin ) {
18+ lib = new FoliaLib (plugin );
19+ sch = lib .getScheduler ();
20+ }
21+
22+ public static final boolean isFolia () {
23+ return lib .isFolia ();
24+ }
25+
26+ public static final boolean isPaper () {
27+ return lib .isPaper ();
28+ }
29+
30+ public static final void cancelAllTasks () {
31+ sch .cancelAllTasks ();
32+ }
33+
34+ public static final CompletableFuture <Void > runNextTick (final Runnable task ) {
35+ return sch .runNextTick (t -> task .run ());
36+ }
37+
38+ public static final WrappedTask runLater (final Runnable task , final long delayTicks ) {
39+ return sch .runLater (task , delayTicks );
40+ }
41+
42+ public static final WrappedTask runTimer (final Runnable task , final long delayTicks , final long periodTicks ) {
43+ return sch .runTimer (task , delayTicks , periodTicks );
44+ }
45+
46+ public static final CompletableFuture <Void > runAsync (final Runnable task ) {
47+ return sch .runAsync (t -> task .run ());
48+ }
49+
50+ public static final WrappedTask runLaterAsync (final Runnable task , final long delayTicks ) {
51+ return sch .runLaterAsync (task , delayTicks );
52+ }
53+
54+ public static final WrappedTask runLaterAsync (final Runnable task , final long delay , final TimeUnit unit ) {
55+ return sch .runLaterAsync (task , delay , unit );
56+ }
57+
58+ public static final WrappedTask runTimerAsync (final Runnable task , final long delayTicks , final long periodTicks ) {
59+ return sch .runTimerAsync (task , delayTicks , periodTicks );
60+ }
61+
62+ public static final WrappedTask runTimerAsync (final Runnable task , final long delay , final long period , final TimeUnit unit ) {
63+ return sch .runTimerAsync (task , delay , period , unit );
64+ }
65+
66+ public static final CompletableFuture <Void > runAtLocation (final Location loc , final Runnable task ) {
67+ return sch .runAtLocation (loc , t -> task .run ());
68+ }
69+
70+ public static final WrappedTask runAtLocationLater (final Location loc , final Runnable task , final long delayTicks ) {
71+ return sch .runAtLocationLater (loc , task , delayTicks );
72+ }
73+
74+ public static final WrappedTask runAtLocationTimer (final Location loc , final Runnable task , final long delayTicks , final long periodTicks ) {
75+ return sch .runAtLocationTimer (loc , task , delayTicks , periodTicks );
76+ }
77+
78+ public static final CompletableFuture <?> runAtEntity (final Entity ent , final Runnable task ) {
79+ return sch .runAtEntity (ent , t -> task .run ());
80+ }
81+
82+ public static final WrappedTask runAtEntityLater (final Entity ent , final Runnable task , final long delayTicks ) {
83+ return sch .runAtEntityLater (ent , task , delayTicks );
84+ }
85+
86+ public static final WrappedTask runAtEntityTimer (final Entity ent , final Runnable task , final long delayTicks , final long periodTicks ) {
87+ return sch .runAtEntityTimer (ent , task , delayTicks , periodTicks );
88+ }
89+ }
0 commit comments