From 7d6c978cfefcfd868680be61ec2a95231393f719 Mon Sep 17 00:00:00 2001 From: Charlie Joseph Date: Wed, 9 Aug 2023 10:36:54 +0100 Subject: [PATCH] Add Folia support --- build.gradle.kts | 2 +- bukkit/build.gradle.kts | 5 +++++ .../main/java/net/analyse/plugin/AnalysePlugin.java | 11 ++++++++++- .../net/analyse/plugin/manager/HeartbeatManager.java | 9 ++++----- bukkit/src/main/resources/plugin.yml | 1 + 5 files changed, 21 insertions(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5e1b242..64c54ca 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { defaultTasks("clean", "shadowJar") group = "net.analyse" -version = "2.0.8" +version = "2.0.9" subprojects { plugins.apply("java") diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index a8b9e0c..e4e7644 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -7,11 +7,15 @@ repositories { maven { url = uri("https://repo.opencollab.dev/maven-snapshots/") } + maven { + url = uri("https://mvn-repo.arim.space/lesser-gpl3/") + } } dependencies { implementation(project(":sdk")) implementation("it.unimi.dsi:fastutil:8.5.6") + implementation("space.arim.morepaperlib:morepaperlib:0.4.3") compileOnly("org.spigotmc:spigot-api:1.19.4-R0.1-SNAPSHOT") compileOnly("dev.dejvokep:boosted-yaml:1.3") @@ -27,6 +31,7 @@ tasks.named("shadowJar", ShadowJar::class.java) { relocate("okio", "net.analyse.plugin.libs.okio") relocate("dev.dejvokep.boostedyaml", "net.analyse.plugin.libs.boostedyaml") relocate("org.jetbrains.annotations", "net.analyse.plugin.libs.jetbrains") + relocate("space.arim.morepaperlib", "net.analyse.plugin.libs.paperlib") relocate("kotlin", "net.analyse.plugin.libs.kotlin") minimize() } diff --git a/bukkit/src/main/java/net/analyse/plugin/AnalysePlugin.java b/bukkit/src/main/java/net/analyse/plugin/AnalysePlugin.java index 4132171..346f7e2 100644 --- a/bukkit/src/main/java/net/analyse/plugin/AnalysePlugin.java +++ b/bukkit/src/main/java/net/analyse/plugin/AnalysePlugin.java @@ -24,6 +24,8 @@ import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; +import space.arim.morepaperlib.MorePaperLib; +import space.arim.morepaperlib.scheduling.GracefulScheduling; import java.io.File; import java.io.IOException; @@ -47,6 +49,7 @@ public final class AnalysePlugin extends JavaPlugin implements Platform { private ModuleManager moduleManager; private ProxyMessageListener proxyMessageListener; private FloodgateHook floodgateHook; + private MorePaperLib morePaperLib; /** * Starts the Bukkit platform. @@ -189,9 +192,11 @@ public void onEnable() { Class.forName("org.bukkit.event.server.ServerLoadEvent"); registerEvents(new ServerLoadListener(this)); } catch (final ClassNotFoundException ignored) { - Bukkit.getScheduler().runTaskLater(this, this::loadModules, 1); + getScheduler().globalRegionalScheduler().runDelayed(this::loadModules, 1); } + morePaperLib = new MorePaperLib(this); + if(isSetup()) { sdk.sendTelemetry().thenAccept(telemetry -> { debug("Sent telemetry data."); @@ -256,6 +261,10 @@ public void unloadModule(PlatformModule module) { moduleManager.unregister(module); } + public GracefulScheduling getScheduler() { + return morePaperLib.scheduling(); + } + /** * Registers the specified listener with the plugin manager. * @param l the listener to register diff --git a/bukkit/src/main/java/net/analyse/plugin/manager/HeartbeatManager.java b/bukkit/src/main/java/net/analyse/plugin/manager/HeartbeatManager.java index 543c182..2ba872c 100644 --- a/bukkit/src/main/java/net/analyse/plugin/manager/HeartbeatManager.java +++ b/bukkit/src/main/java/net/analyse/plugin/manager/HeartbeatManager.java @@ -2,22 +2,21 @@ import net.analyse.plugin.AnalysePlugin; import net.analyse.sdk.exception.ServerNotFoundException; -import net.analyse.sdk.util.StringUtil; import org.bukkit.Bukkit; -import org.bukkit.scheduler.BukkitTask; +import space.arim.morepaperlib.scheduling.ScheduledTask; import java.util.logging.Level; public class HeartbeatManager { private final AnalysePlugin platform; - private BukkitTask task; + private ScheduledTask task; public HeartbeatManager(AnalysePlugin platform) { this.platform = platform; } public void start() { - task = platform.getServer().getScheduler().runTaskTimer(platform, () -> { + task = platform.getScheduler().globalRegionalScheduler().runAtFixedRate(() -> { int playerCount = Bukkit.getOnlinePlayers().size(); if(playerCount == 0) { @@ -44,7 +43,7 @@ public void start() { return null; }); - }, 0, 20 * 60); + }, 1, 20 * 60); } public void stop() { diff --git a/bukkit/src/main/resources/plugin.yml b/bukkit/src/main/resources/plugin.yml index c8bd0e3..63f7de7 100644 --- a/bukkit/src/main/resources/plugin.yml +++ b/bukkit/src/main/resources/plugin.yml @@ -2,6 +2,7 @@ name: Analyse version: '${version}' main: net.analyse.plugin.AnalysePlugin api-version: 1.13 +folia-supported: true softdepend: - PlaceholderAPI - floodgate