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 +