Skip to content

Commit 85aa2d0

Browse files
committed
1.11.0
1 parent 936e7be commit 85aa2d0

3 files changed

Lines changed: 43 additions & 4 deletions

File tree

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66
}
77

88
group = 'dev.pixelstudios'
9-
version = '1.10.8'
9+
version = '1.11.0'
1010

1111
repositories {
1212
mavenCentral()
@@ -28,7 +28,7 @@ dependencies {
2828
compileOnly 'org.spigotmc:spigot-api:1.21.7-R0.1-SNAPSHOT'
2929

3030
compileOnly 'me.clip:placeholderapi:2.11.5'
31-
compileOnly 'de.tr7zw:item-nbt-api:2.15.0'
31+
compileOnly 'de.tr7zw:item-nbt-api:2.15.1'
3232
compileOnly 'net.Indyuce:MMOItems-API:6.9.5-SNAPSHOT'
3333
compileOnly 'io.lumine:MythicLib-dist:1.6.2-SNAPSHOT'
3434
compileOnly 'com.github.LoneDev6:API-ItemsAdder:3.6.3-beta-14'

src/main/java/dev/pixelstudios/xutils/Tasks.java

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import org.bukkit.scheduler.BukkitRunnable;
66
import org.bukkit.scheduler.BukkitTask;
77

8+
import java.util.Iterator;
9+
import java.util.concurrent.CompletableFuture;
10+
import java.util.function.BiConsumer;
811
import java.util.function.Supplier;
912

1013
@UtilityClass
@@ -30,17 +33,23 @@ public static BukkitTask repeat(Runnable task, long delay, long period) {
3033
return Bukkit.getScheduler().runTaskTimer(XUtils.getPlugin(), task, delay, period);
3134
}
3235

33-
public static void repeatTimes(Runnable task, long delay, long period, int times) {
36+
public static CompletableFuture<Void> repeatTimes(Runnable task, long delay, long period, int times) {
37+
CompletableFuture<Void> future = new CompletableFuture<>();
38+
3439
new BukkitRunnable() {
3540
int remaining = times;
41+
3642
@Override
3743
public void run() {
3844
task.run();
3945
if (--remaining == 0) {
46+
future.complete(null);
4047
cancel();
4148
}
4249
}
4350
}.runTaskTimer(XUtils.getPlugin(), delay, period);
51+
52+
return future;
4453
}
4554

4655
public static BukkitTask repeatAsync(Runnable task, long delay, long period) {
@@ -90,4 +99,33 @@ public static void cancelAll() {
9099
Bukkit.getScheduler().cancelTasks(XUtils.getPlugin());
91100
}
92101

93-
}
102+
public static <T> CompletableFuture<Void> forEach(Iterable<T> iterable, BiConsumer<Integer, T> consumer, long delay, long period) {
103+
CompletableFuture<Void> future = new CompletableFuture<>();
104+
Iterator<T> iterator = iterable.iterator();
105+
106+
new BukkitRunnable() {
107+
int index = 0;
108+
109+
@Override
110+
public void run() {
111+
if (!iterator.hasNext()) {
112+
future.complete(null);
113+
cancel();
114+
return;
115+
}
116+
117+
T item = iterator.next();
118+
consumer.accept(index++, item);
119+
}
120+
}.runTaskTimer(XUtils.getPlugin(), delay, period);
121+
122+
return future;
123+
}
124+
125+
public static CompletableFuture<Void> delay(long ticks) {
126+
CompletableFuture<Void> future = new CompletableFuture<>();
127+
Bukkit.getScheduler().runTaskLater(XUtils.getPlugin(), () -> future.complete(null), ticks);
128+
return future;
129+
}
130+
131+
}

src/main/java/dev/pixelstudios/xutils/menu/PaginatedMenu.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public PaginatedMenu(Player player, ConfigurationSection section) {
2222
placeholders.addNumber("previous_page", () -> page);
2323
placeholders.addNumber("page", () -> page + 1);
2424
placeholders.addNumber("next_page", () -> page + 2);
25+
placeholders.addNumber("max_pages", this::getMaxPages);
2526
}
2627

2728
public PaginatedMenu(Player player) {

0 commit comments

Comments
 (0)