Merge pull request #417 from PolyhedralDev/dev/folia

Dev/folia
This commit is contained in:
Zoë
2023-10-19 01:18:45 +00:00
committed by GitHub
10 changed files with 33 additions and 11 deletions

View File

@@ -48,6 +48,9 @@ fun Project.configureDependencies() {
maven("https://jitpack.io") {
name = "JitPack"
}
maven("https://nexuslite.gcnt.net/repos/other/") {
name = "GCNT"
}
}
dependencies {
@@ -58,4 +61,4 @@ fun Project.configureDependencies() {
compileOnly("com.google.guava:guava:30.0-jre")
testImplementation("com.google.guava:guava:30.0-jre")
}
}
}

View File

@@ -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"

View File

@@ -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/**")

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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<String, com.dfsek.terra.api.world.chunk.generation.ChunkGenerator> 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;
}
}

View File

@@ -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);
}

View File

@@ -6,3 +6,4 @@ author: dfsek
website: "@WIKI@"
api-version: "1.13"
description: "@DESCRIPTION@"
folia-supported: true