From c21eb7775c22c590b72cb16f5ffb7d65ecb94ca7 Mon Sep 17 00:00:00 2001
From: adabugra <57899270+adabugra@users.noreply.github.com>
Date: Tue, 8 Jul 2025 12:01:27 +0300
Subject: [PATCH] feat: add Folia support
---
api/pom.xml | 16 ++++++++---
.../de/rapha149/signgui/FoliaLibManager.java | 27 +++++++++++++++++++
.../java/de/rapha149/signgui/SignGUI.java | 3 +--
.../de/rapha149/signgui/SignGUIAction.java | 5 ++--
.../de/rapha149/signgui/SignGUIBuilder.java | 6 +++++
pom.xml | 4 +++
6 files changed, 53 insertions(+), 8 deletions(-)
create mode 100644 api/src/main/java/de/rapha149/signgui/FoliaLibManager.java
diff --git a/api/pom.xml b/api/pom.xml
index f6873ed6..97567a53 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -43,6 +43,12 @@
json
20240303
-->
+
+ com.tcoded
+ FoliaLib
+ 0.5.1
+ compile
+
org.spigotmc
spigot
@@ -285,14 +291,18 @@
shade
-
- -->
+
diff --git a/api/src/main/java/de/rapha149/signgui/FoliaLibManager.java b/api/src/main/java/de/rapha149/signgui/FoliaLibManager.java
new file mode 100644
index 00000000..ac6f0954
--- /dev/null
+++ b/api/src/main/java/de/rapha149/signgui/FoliaLibManager.java
@@ -0,0 +1,27 @@
+package de.rapha149.signgui;
+
+import com.tcoded.folialib.FoliaLib;
+import org.bukkit.plugin.java.JavaPlugin;
+
+
+public class FoliaLibManager {
+
+ private static FoliaLib foliaLib;
+ public static boolean initialized = false;
+
+ public static void initialize(JavaPlugin plugin) {
+ if (initialized) {
+ throw new IllegalStateException("FoliaLibManager is already initialized");
+ }
+
+ foliaLib = new FoliaLib(plugin);
+ initialized = true;
+ }
+
+ public static FoliaLib getFoliaLib() {
+ if (!initialized) {
+ throw new IllegalStateException("FoliaLibManager is not initialized");
+ }
+ return foliaLib;
+ }
+}
\ No newline at end of file
diff --git a/api/src/main/java/de/rapha149/signgui/SignGUI.java b/api/src/main/java/de/rapha149/signgui/SignGUI.java
index 1f37daa0..dcb5b94d 100644
--- a/api/src/main/java/de/rapha149/signgui/SignGUI.java
+++ b/api/src/main/java/de/rapha149/signgui/SignGUI.java
@@ -5,7 +5,6 @@
import de.rapha149.signgui.exception.SignGUIVersionException;
import de.rapha149.signgui.version.VersionMatcher;
import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -108,7 +107,7 @@ public void open(Player player) throws SignGUIException {
};
if (callHandlerSynchronously)
- Bukkit.getScheduler().runTask(plugin, runnable);
+ FoliaLibManager.getFoliaLib().getScheduler().runAtEntity(player, task -> runnable.run());
else
runnable.run();
});
diff --git a/api/src/main/java/de/rapha149/signgui/SignGUIAction.java b/api/src/main/java/de/rapha149/signgui/SignGUIAction.java
index 16175475..6822c113 100644
--- a/api/src/main/java/de/rapha149/signgui/SignGUIAction.java
+++ b/api/src/main/java/de/rapha149/signgui/SignGUIAction.java
@@ -1,7 +1,6 @@
package de.rapha149.signgui;
import org.apache.commons.lang.Validate;
-import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.plugin.java.JavaPlugin;
@@ -122,7 +121,7 @@ public SignGUIActionInfo getInfo() {
@Override
public void execute(SignGUI gui, SignEditor signEditor, Player player) {
- Bukkit.getScheduler().runTask(plugin, () -> player.openInventory(inventory));
+ FoliaLibManager.getFoliaLib().getScheduler().runAtEntity(player, task -> player.openInventory(inventory));
}
};
}
@@ -175,7 +174,7 @@ public SignGUIActionInfo getInfo() {
@Override
public void execute(SignGUI gui, SignEditor signEditor, Player player) {
- Bukkit.getScheduler().runTask(plugin, runnable);
+ FoliaLibManager.getFoliaLib().getScheduler().runAtEntity(player, task -> runnable.run());
}
};
}
diff --git a/api/src/main/java/de/rapha149/signgui/SignGUIBuilder.java b/api/src/main/java/de/rapha149/signgui/SignGUIBuilder.java
index 33babccc..09a4a0ec 100644
--- a/api/src/main/java/de/rapha149/signgui/SignGUIBuilder.java
+++ b/api/src/main/java/de/rapha149/signgui/SignGUIBuilder.java
@@ -176,6 +176,12 @@ public SignGUIBuilder setHandler(SignGUIFinishHandler handler) {
public SignGUIBuilder callHandlerSynchronously(JavaPlugin plugin) {
this.callHandlerSynchronously = true;
this.plugin = plugin;
+
+ // Initialize FoliaLibManager if not already initialized
+ if (!FoliaLibManager.initialized) {
+ FoliaLibManager.initialize(plugin);
+ }
+
return this;
}
diff --git a/pom.xml b/pom.xml
index 91fa9416..c51b8a31 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,10 @@
nms-repo
https://repo.codemc.org/repository/nms/
+
+ tcoded-releases
+ https://repo.tcoded.com/releases
+