From 27eebf6a476c35e20101093e019e0f75cdff7871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB=20Gidiere?= Date: Mon, 2 Oct 2023 00:21:09 -0600 Subject: [PATCH 1/3] Folia support Co-authored-by: Janet Blackquill --- buildSrc/src/main/kotlin/DependencyConfig.kt | 3 +++ buildSrc/src/main/kotlin/Versions.kt | 1 + platforms/bukkit/build.gradle.kts | 5 ++++- platforms/bukkit/common/build.gradle.kts | 1 + .../main/java/com/dfsek/terra/bukkit/BukkitEntity.java | 5 +++-- .../main/java/com/dfsek/terra/bukkit/BukkitPlayer.java | 5 +++-- .../main/java/com/dfsek/terra/bukkit/PlatformImpl.java | 4 +++- .../java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java | 9 ++++++++- .../main/java/com/dfsek/terra/bukkit/util/PaperUtil.java | 8 +++++--- platforms/bukkit/common/src/main/resources/plugin.yml | 1 + 10 files changed, 32 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/kotlin/DependencyConfig.kt b/buildSrc/src/main/kotlin/DependencyConfig.kt index b0e7d32c4..fd87495a7 100644 --- a/buildSrc/src/main/kotlin/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/DependencyConfig.kt @@ -48,6 +48,9 @@ fun Project.configureDependencies() { maven("https://jitpack.io") { name = "JitPack" } + maven("https://nexuslite.gcnt.net/repos/other/") { + name = "devmart-other" + } } dependencies { diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 529d15726..401f03ace 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -50,6 +50,7 @@ object Versions { object Bukkit { const val paper = "1.18.2-R0.1-SNAPSHOT" const val paperLib = "1.0.5" + const val foliaLib = "0.2.5" const val minecraft = "1.20.2" const val reflectionRemapper = "0.1.0-SNAPSHOT" const val paperDevBundle = "1.20.2-R0.1-SNAPSHOT" diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index 9238647fe..c72bae196 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -3,7 +3,9 @@ plugins { } repositories { - maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") { + name = "sonatype" + } } dependencies { @@ -20,6 +22,7 @@ dependencies { tasks { shadowJar { relocate("io.papermc.lib", "com.dfsek.terra.lib.paperlib") + relocate("com.tcoded.folialib", "com.dfsek.terra.lib.folialib") relocate("com.google.common", "com.dfsek.terra.lib.google.common") relocate("org.apache.logging.slf4j", "com.dfsek.terra.lib.slf4j-over-log4j") exclude("org/slf4j/**") diff --git a/platforms/bukkit/common/build.gradle.kts b/platforms/bukkit/common/build.gradle.kts index d8b1671ef..e85f59e3a 100644 --- a/platforms/bukkit/common/build.gradle.kts +++ b/platforms/bukkit/common/build.gradle.kts @@ -8,6 +8,7 @@ dependencies { compileOnly("io.papermc.paper", "paper-api", Versions.Bukkit.paper) shadedApi("io.papermc", "paperlib", Versions.Bukkit.paperLib) + shadedApi("com.tcoded", "FoliaLib" , Versions.Bukkit.foliaLib) shadedApi("com.google.guava", "guava", Versions.Libraries.Internal.guava) shadedApi("cloud.commandframework", "cloud-paper", Versions.Libraries.cloud) diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java index f36436471..7ea9d2294 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitEntity.java @@ -17,6 +17,7 @@ package com.dfsek.terra.bukkit; +import io.papermc.lib.PaperLib; import org.bukkit.Location; import com.dfsek.terra.api.entity.Entity; @@ -44,14 +45,14 @@ public class BukkitEntity implements Entity { @Override public void position(Vector3 location) { - entity.teleport(BukkitAdapter.adapt(location).toLocation(entity.getWorld())); + PaperLib.teleportAsync(entity, BukkitAdapter.adapt(location).toLocation(entity.getWorld())); } @Override public void world(ServerWorld world) { Location newLoc = entity.getLocation().clone(); newLoc.setWorld(BukkitAdapter.adapt(world)); - entity.teleport(newLoc); + PaperLib.teleportAsync(entity, newLoc); } @Override diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java index 7d8b0a5f0..c2958d44c 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitPlayer.java @@ -17,6 +17,7 @@ package com.dfsek.terra.bukkit; +import io.papermc.lib.PaperLib; import org.bukkit.Location; import com.dfsek.terra.api.entity.Player; @@ -45,14 +46,14 @@ public class BukkitPlayer implements Player { @Override public void position(Vector3 location) { - delegate.teleport(BukkitAdapter.adapt(location).toLocation(delegate.getWorld())); + PaperLib.teleportAsync(delegate, BukkitAdapter.adapt(location).toLocation(delegate.getWorld())); } @Override public void world(ServerWorld world) { Location newLoc = delegate.getLocation().clone(); newLoc.setWorld(BukkitAdapter.adapt(world)); - delegate.teleport(newLoc); + PaperLib.teleportAsync(delegate, newLoc); } @Override diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java index bba0e1bc1..189f1d12f 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java @@ -20,6 +20,7 @@ package com.dfsek.terra.bukkit; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; +import com.tcoded.folialib.wrapper.task.WrappedTask; import org.bukkit.Bukkit; import org.bukkit.entity.EntityType; import org.jetbrains.annotations.NotNull; @@ -29,6 +30,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.List; import java.util.Locale; +import java.util.function.Consumer; import com.dfsek.terra.AbstractPlatform; import com.dfsek.terra.api.addon.BaseAddon; @@ -85,7 +87,7 @@ public class PlatformImpl extends AbstractPlatform { @Override public void runPossiblyUnsafeTask(@NotNull Runnable task) { - Bukkit.getScheduler().runTask(plugin, task); + plugin.getFoliaLib().getImpl().runAsync(task); } @Override diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java index 6390444f2..0bbf6e2e5 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/TerraBukkitPlugin.java @@ -42,6 +42,7 @@ import com.dfsek.terra.bukkit.nms.Initializer; import com.dfsek.terra.bukkit.util.PaperUtil; import com.dfsek.terra.bukkit.util.VersionUtil; import com.dfsek.terra.bukkit.world.BukkitAdapter; +import com.tcoded.folialib.FoliaLib; public class TerraBukkitPlugin extends JavaPlugin { @@ -50,6 +51,8 @@ public class TerraBukkitPlugin extends JavaPlugin { private final PlatformImpl platform = new PlatformImpl(this); private final Map generatorMap = new HashMap<>(); + private final FoliaLib foliaLib = new FoliaLib(this); + @Override public void onEnable() { if(!doVersionCheck()) { @@ -150,7 +153,7 @@ public class TerraBukkitPlugin extends JavaPlugin { """.strip()); }; runnable.run(); - Bukkit.getScheduler().scheduleAsyncDelayedTask(this, runnable, 200L); + getFoliaLib().getImpl().runLaterAsync(runnable, 200L); // Bukkit.shutdown(); // we're not *that* evil Bukkit.getPluginManager().disablePlugin(this); return false; @@ -177,4 +180,8 @@ public class TerraBukkitPlugin extends JavaPlugin { return pack.getGeneratorProvider().newInstance(pack); }), platform.getRawConfigRegistry().getByID(id).orElseThrow(), platform.getWorldHandle().air()); } + + public FoliaLib getFoliaLib() { + return foliaLib; + } } diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/PaperUtil.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/PaperUtil.java index d7b06b93d..b5c029000 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/PaperUtil.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/PaperUtil.java @@ -17,6 +17,8 @@ package com.dfsek.terra.bukkit.util; +import com.dfsek.terra.bukkit.TerraBukkitPlugin; + import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; @@ -25,10 +27,10 @@ import static io.papermc.lib.PaperLib.suggestPaper; public final class PaperUtil { - public static void checkPaper(JavaPlugin main) { - Bukkit.getScheduler().scheduleSyncDelayedTask(main, () -> { + public static void checkPaper(TerraBukkitPlugin plugin) { + plugin.getFoliaLib().getImpl().runLaterAsync(() -> { if(!PaperLib.isPaper()) { - suggestPaper(main); + suggestPaper(plugin); } }, 100L); } diff --git a/platforms/bukkit/common/src/main/resources/plugin.yml b/platforms/bukkit/common/src/main/resources/plugin.yml index 15f937a48..d4bfd5534 100644 --- a/platforms/bukkit/common/src/main/resources/plugin.yml +++ b/platforms/bukkit/common/src/main/resources/plugin.yml @@ -6,3 +6,4 @@ author: dfsek website: "@WIKI@" api-version: "1.13" description: "@DESCRIPTION@" +folia-supported: true From c8f2871aaa201093d0c8c7b093c091440fa74318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Tue, 17 Oct 2023 20:59:27 -0600 Subject: [PATCH 2/3] Update build.gradle.kts --- platforms/bukkit/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index c72bae196..455c963ec 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -4,7 +4,7 @@ plugins { repositories { maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") { - name = "sonatype" + name = "Sonatype" } } From 9f4a8e06e18e500e3dc7a4d26360fc79dffad546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Tue, 17 Oct 2023 21:00:28 -0600 Subject: [PATCH 3/3] Update DependencyConfig.kt --- buildSrc/src/main/kotlin/DependencyConfig.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/DependencyConfig.kt b/buildSrc/src/main/kotlin/DependencyConfig.kt index fd87495a7..82b3b206b 100644 --- a/buildSrc/src/main/kotlin/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/DependencyConfig.kt @@ -49,7 +49,7 @@ fun Project.configureDependencies() { name = "JitPack" } maven("https://nexuslite.gcnt.net/repos/other/") { - name = "devmart-other" + name = "GCNT" } } @@ -61,4 +61,4 @@ fun Project.configureDependencies() { compileOnly("com.google.guava:guava:30.0-jre") testImplementation("com.google.guava:guava:30.0-jre") } -} \ No newline at end of file +}