From b658d97d956312df5b9a0a75ccec0b9fceb78a74 Mon Sep 17 00:00:00 2001 From: Loving11ish Date: Sun, 28 Jan 2024 23:41:21 +0000 Subject: [PATCH] Updated FoliaLib dependency. Fixed ProcessPlayerEvent scheduler in WorldGuardPlugin.java. Fixed cancelling of Bukkit tasks if not running on Folia. Made SessionManager task async. Updated PaperAPI to 1.20.2. Fixed plugin.yml formatting. Updated README.md to reflect new project member(@Loving11ish). --- README.md | 3 ++ gradle.properties | 2 +- worldguard-bukkit/build.gradle.kts | 6 +-- .../bukkit/BukkitRegionContainer.java | 2 +- .../worldguard/bukkit/WorldGuardPlugin.java | 48 +++++++++++-------- .../listener/EventAbstractionListener.java | 2 +- .../bukkit/listener/PlayerMoveListener.java | 2 +- .../bukkit/session/BukkitSessionManager.java | 4 +- .../bukkit/util/report/SchedulerReport.java | 3 +- .../src/main/resources/plugin.yml | 2 +- 10 files changed, 43 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index a895e1f9..10091e9b 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,12 @@ Please read CONTRIBUTING.md for important guidelines to follow. Submissions must be licensed under the GNU Lesser General Public License v3. # Folia Inquisitors +This Folia support is maintained by the following organizations and people: + [Folia-Inquisitors](https://github.com/orgs/Folia-Inquisitors/repositories) [TechnicallyCoded](https://github.com/TechnicallyCoded) [Yomamaeatstoes](https://github.com/Yomamaeatstoes) +[Loving11ish](https://github.com/Loving11ish) Links ----- diff --git a/gradle.properties b/gradle.properties index b5d88d32..2c13f50c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ group=com.sk89q.worldguard -version=7.1.0-SNAPSHOT-Custom-Folia +version=7.1.0-SNAPSHOT diff --git a/worldguard-bukkit/build.gradle.kts b/worldguard-bukkit/build.gradle.kts index c2ba9bc3..fd517be2 100644 --- a/worldguard-bukkit/build.gradle.kts +++ b/worldguard-bukkit/build.gradle.kts @@ -24,13 +24,13 @@ dependencies { "api"(project(":worldguard-core")) - "compileOnly"("io.papermc.paper:paper-api:1.20-R0.1-SNAPSHOT") - "runtimeOnly"("org.spigotmc:spigot-api:1.20-R0.1-SNAPSHOT") { + "compileOnly"("io.papermc.paper:paper-api:1.20.2-R0.1-SNAPSHOT") + "runtimeOnly"("org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT") { exclude("junit", "junit") } "api"("com.sk89q.worldedit:worldedit-bukkit:${Versions.WORLDEDIT}") { isTransitive = false } "implementation"("com.google.guava:guava:${Versions.GUAVA}") - "implementation"("com.tcoded:FoliaLib:0.2.3") + "implementation"("com.tcoded:FoliaLib:0.3.1") "compileOnly"("com.sk89q:commandbook:2.3") { isTransitive = false } "shadeOnly"("io.papermc:paperlib:1.0.8") "shadeOnly"("org.bstats:bstats-bukkit:3.0.1") diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java index 0f5e6ed0..065fa0d9 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitRegionContainer.java @@ -96,7 +96,7 @@ public void onChunkUnload(ChunkUnloadEvent event) { }, plugin); int interval = CACHE_INVALIDATION_INTERVAL * 50; - plugin.foliaLib.getImpl().runTimerAsync(cache::invalidateAll, interval, interval, TimeUnit.MILLISECONDS); + plugin.getFoliaLib().getImpl().runTimerAsync(cache::invalidateAll, interval, interval, TimeUnit.MILLISECONDS); // Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, cache::invalidateAll, CACHE_INVALIDATION_INTERVAL, CACHE_INVALIDATION_INTERVAL); } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java index 9c44f62b..0741415a 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java @@ -114,7 +114,7 @@ public class WorldGuardPlugin extends JavaPlugin { private static final int BSTATS_PLUGIN_ID = 3283; - public FoliaLib foliaLib; + private FoliaLib foliaLib; /** * Construct objects. Actual loading occurs when the plugin is enabled, so @@ -174,7 +174,7 @@ public void onEnable() { } int runDelayMs = BukkitSessionManager.RUN_DELAY * 50; - foliaLib.getImpl().runTimer(sessionManager, runDelayMs, runDelayMs, TimeUnit.MILLISECONDS); + foliaLib.getImpl().runTimerAsync(sessionManager, runDelayMs, runDelayMs, TimeUnit.MILLISECONDS); // getServer().getScheduler().scheduleSyncRepeatingTask(this, sessionManager, BukkitSessionManager.RUN_DELAY, BukkitSessionManager.RUN_DELAY); // Register events @@ -216,25 +216,28 @@ public void onEnable() { } worldListener.registerEvents(); - if (foliaLib.isFolia()) { - for (Player player : Bukkit.getServer().getOnlinePlayers()) { - foliaLib.getImpl().runAtEntity(player, new Runnable() { - @Override - public void run() { - ProcessPlayerEvent event = new ProcessPlayerEvent(player); - Events.fire(event); - } - }); - } - } - else { - Bukkit.getScheduler().runTask(this, () -> { - for (Player player : Bukkit.getServer().getOnlinePlayers()) { - ProcessPlayerEvent event = new ProcessPlayerEvent(player); - Events.fire(event); - } + for (Player player : Bukkit.getServer().getOnlinePlayers()) { + foliaLib.getImpl().runAtEntity(player, (task) -> { + ProcessPlayerEvent event = new ProcessPlayerEvent(player); + Events.fire(event); }); } +// if (foliaLib.isFolia()) { +// for (Player player : Bukkit.getServer().getOnlinePlayers()) { +// foliaLib.getImpl().runAtEntity(player, (task) -> { +// ProcessPlayerEvent event = new ProcessPlayerEvent(player); +// Events.fire(event); +// }); +// } +// } +// else { +// Bukkit.getScheduler().runTask(this, () -> { +// for (Player player : Bukkit.getServer().getOnlinePlayers()) { +// ProcessPlayerEvent event = new ProcessPlayerEvent(player); +// Events.fire(event); +// } +// }); +// } ((SimpleFlagRegistry) WorldGuard.getInstance().getFlagRegistry()).setInitialized(true); ((SimpleDomainRegistry) WorldGuard.getInstance().getDomainRegistry()).setInitialized(true); @@ -290,7 +293,9 @@ private void setupCustomCharts(Metrics metrics) { @Override public void onDisable() { WorldGuard.getInstance().disable(); -// this.getServer().getScheduler().cancelTasks(this); + if (!foliaLib.isFolia()) { + this.getServer().getScheduler().cancelTasks(this); + } foliaLib.getImpl().cancelAllTasks(); } @@ -551,4 +556,7 @@ public PlayerMoveListener getPlayerMoveListener() { return playerMoveListener; } + public FoliaLib getFoliaLib() { + return foliaLib; + } } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java index 27e75bb7..d91baf1d 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java @@ -994,7 +994,7 @@ public void onInventoryMoveItem(InventoryMoveItemEvent event) { Hopper hopperCauseHolder = (Hopper) causeHolder; Location location = hopperCauseHolder.getLocation(); - getPlugin().foliaLib.getImpl().runAtLocationLater(location, () -> { + getPlugin().getFoliaLib().getImpl().runAtLocationLater(location, () -> { Block block = location.getBlock(); if (block.getType() == Material.HOPPER) { block.breakNaturally(); diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java index 786666ad..5bc4c2fb 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java @@ -133,7 +133,7 @@ public void onPlayerMove(PlayerMoveEvent event) { player.teleport(override.clone().add(0, 1, 0)); - getPlugin().foliaLib.getImpl().runAtEntityLater(player, () -> { + getPlugin().getFoliaLib().getImpl().runAtEntityLater(player, () -> { player.teleport(override.clone().add(0, 1, 0)); }, 50, TimeUnit.MILLISECONDS); // Bukkit.getScheduler().runTaskLater(getPlugin(), () -> player.teleport(override.clone().add(0, 1, 0)), 1); diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java index 6d6ba51f..21168afc 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/session/BukkitSessionManager.java @@ -72,10 +72,10 @@ public void run() { LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player); Session session = get(localPlayer); - FoliaLib foliaLib = WorldGuardPlugin.inst().foliaLib; + FoliaLib foliaLib = WorldGuardPlugin.inst().getFoliaLib(); ServerImplementation impl = foliaLib.getImpl(); - if (foliaLib.isFolia()) impl.runAtEntity(player, () -> session.tick(localPlayer)); + if (foliaLib.isFolia()) impl.runAtEntity(player, (task) -> session.tick(localPlayer)); else session.tick(localPlayer); } } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/report/SchedulerReport.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/report/SchedulerReport.java index 81da20ec..e2557786 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/report/SchedulerReport.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/report/SchedulerReport.java @@ -25,6 +25,7 @@ import com.google.common.cache.LoadingCache; import com.sk89q.worldedit.util.report.DataReport; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; +import com.tcoded.folialib.wrapper.task.WrappedTask; import org.bukkit.Bukkit; import org.bukkit.scheduler.BukkitTask; @@ -53,7 +54,7 @@ public Optional load(Class clazz) throws Exception { public SchedulerReport() { super("Scheduler"); - append("Error", "MODDED FOLIA VERSION - DO NOT REPORT TO WORLDGUARD"); + append("Error", "FOLIA VERSION - PLEASE REPORT TO WORLDGUARD"); // List tasks = Bukkit.getServer().getScheduler().getPendingTasks(); //// WorldGuardPlugin.inst().foliaLib.getImpl(). diff --git a/worldguard-bukkit/src/main/resources/plugin.yml b/worldguard-bukkit/src/main/resources/plugin.yml index 2c7bf9d3..cdee59d2 100644 --- a/worldguard-bukkit/src/main/resources/plugin.yml +++ b/worldguard-bukkit/src/main/resources/plugin.yml @@ -4,4 +4,4 @@ version: "${internalVersion}" depend: [WorldEdit] softdepend: [CommandBook] api-version: "1.20" -folia-supported: true \ No newline at end of file +folia-supported: true