From 296baf0e8146fac28b8a17ade20a3d16de1fd78f Mon Sep 17 00:00:00 2001
From: TheMeinerLP
Date: Sun, 18 Jun 2023 15:02:12 +0200
Subject: [PATCH] Add folia workaround
---
.../v1_19_R3/PaperweightPlatformAdapter.java | 21 ++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/worldedit-bukkit/adapters/adapter-1_19_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_19_R3/PaperweightPlatformAdapter.java b/worldedit-bukkit/adapters/adapter-1_19_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_19_R3/PaperweightPlatformAdapter.java
index 4d2eef65b..ca88f9c18 100644
--- a/worldedit-bukkit/adapters/adapter-1_19_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_19_R3/PaperweightPlatformAdapter.java
+++ b/worldedit-bukkit/adapters/adapter-1_19_4/src/main/java/com/sk89q/worldedit/bukkit/adapter/impl/fawe/v1_19_R3/PaperweightPlatformAdapter.java
@@ -119,9 +119,20 @@ public final class PaperweightPlatformAdapter extends NMSAdapter {
private static Field LEVEL_CHUNK_ENTITIES;
private static Field SERVER_LEVEL_ENTITY_MANAGER;
+ private static boolean FOLIA_SUPPORT;
+
static {
final MethodHandles.Lookup lookup = MethodHandles.lookup();
try {
+ boolean isFolia = false;
+ try {
+ // Assume API is present
+ Class.forName("io.papermc.paper.threadedregions.scheduler.EntityScheduler");
+ isFolia = true;
+ } catch (Exception unused) {
+
+ }
+ FOLIA_SUPPORT = isFolia;
fieldData = PalettedContainer.class.getDeclaredField(Refraction.pickName("data", "d"));
fieldData.setAccessible(true);
@@ -263,7 +274,9 @@ public final class PaperweightPlatformAdapter extends NMSAdapter {
} else {
LevelChunk nmsChunk = serverLevel.getChunkSource().getChunkAtIfCachedImmediately(chunkX, chunkZ);
if (nmsChunk != null) {
- addTicket(serverLevel, chunkX, chunkZ);
+ if(!FOLIA_SUPPORT) {// TODO: Dirty folia workaround - Needs be discussed with FAWE members
+ addTicket(serverLevel, chunkX, chunkZ);
+ }
return nmsChunk;
}
nmsChunk = serverLevel.getChunkSource().getChunkAtIfLoadedImmediately(chunkX, chunkZ);
@@ -277,6 +290,12 @@ public final class PaperweightPlatformAdapter extends NMSAdapter {
}
CompletableFuture future = serverLevel.getWorld().getChunkAtAsync(chunkX, chunkZ, true, true);
try {
+ /*
+ CraftChunk chunk = (CraftChunk) future.get();
+ if(!FOLIA_SUPPORT) {// TODO: Dirty folia workaround - Needs be discussed with FAWE members
+ addTicket(serverLevel, chunkX, chunkZ);
+ }
+ */
CraftChunk chunk;
try {
chunk = (CraftChunk) future.get(10, TimeUnit.SECONDS);