From 5d2453a687840e135cac4898c873d56796178e79 Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Sun, 24 Mar 2024 17:50:58 +0800 Subject: [PATCH] 3.4.3.2 --- .../api/manager/VersionManager.java | 6 +++++ build.gradle.kts | 2 +- plugin/build.gradle.kts | 2 +- .../manager/VersionManagerImpl.java | 16 ++++++++++++ .../world/adaptor/BukkitWorldAdaptor.java | 10 +++---- plugin/src/main/resources/plugin.yml | 26 ++++++++++++++++++- 6 files changed, 54 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/manager/VersionManager.java b/api/src/main/java/net/momirealms/customcrops/api/manager/VersionManager.java index 3fa695d..7cbe24e 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/manager/VersionManager.java +++ b/api/src/main/java/net/momirealms/customcrops/api/manager/VersionManager.java @@ -39,6 +39,10 @@ public abstract class VersionManager { return instance.isVersionNewerThan1_19_R2(); } + public static boolean isHigherThan1_18() { + return instance.isVersionNewerThan1_18(); + } + public static boolean isHigherThan1_19() { return instance.isVersionNewerThan1_19(); } @@ -85,6 +89,8 @@ public abstract class VersionManager { public abstract boolean isVersionNewerThan1_20(); + public abstract boolean isVersionNewerThan1_18(); + public abstract boolean isMojmap(); public abstract CompletionStage checkUpdate(); diff --git a/build.gradle.kts b/build.gradle.kts index 68e2d73..599279b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { allprojects { project.group = "net.momirealms" - project.version = "3.4.3.1" + project.version = "3.4.3.2" apply() apply(plugin = "java") diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index 6d954cc..08c6c41 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -51,7 +51,7 @@ dependencies { implementation(project(":legacy-api")) implementation("net.kyori:adventure-api:4.15.0") implementation("net.kyori:adventure-platform-bukkit:4.3.2") - implementation("com.github.Xiao-MoMi:AntiGriefLib:0.9") + implementation("com.github.Xiao-MoMi:AntiGriefLib:0.9.1") implementation("com.github.Xiao-MoMi:BiomeAPI:0.3") compileOnly("net.kyori:adventure-text-minimessage:4.15.0") diff --git a/plugin/src/main/java/net/momirealms/customcrops/manager/VersionManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/manager/VersionManagerImpl.java index cfd7cd5..37907d1 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/manager/VersionManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/manager/VersionManagerImpl.java @@ -40,6 +40,7 @@ public class VersionManagerImpl extends VersionManager { private final boolean isNewerThan1_20; private final boolean isNewerThan1_20_R2; private final boolean isNewerThan1_19; + private final boolean isNewerThan1_18; private boolean isMojmap; @SuppressWarnings("deprecation") @@ -57,18 +58,28 @@ public class VersionManagerImpl extends VersionManager { isNewerThan1_19_R3 = true; isNewerThan1_20 = true; isNewerThan1_19 = true; + isNewerThan1_18 = true; } else if (main_ver == 19) { isNewerThan1_19_R2 = Integer.parseInt(split[2].substring(1)) >= 2; isNewerThan1_19_R3 = Integer.parseInt(split[2].substring(1)) >= 3; isNewerThan1_20 = false; isNewerThan1_20_R2 = false; isNewerThan1_19 = true; + isNewerThan1_18 = true; + } else if (main_ver == 18) { + isNewerThan1_19_R2 = false; + isNewerThan1_19_R3 = false; + isNewerThan1_20_R2 = false; + isNewerThan1_20 = false; + isNewerThan1_19 = false; + isNewerThan1_18 = true; } else { isNewerThan1_19_R2 = false; isNewerThan1_19_R3 = false; isNewerThan1_20_R2 = false; isNewerThan1_20 = false; isNewerThan1_19 = false; + isNewerThan1_18 = false; } try { @@ -132,6 +143,11 @@ public class VersionManagerImpl extends VersionManager { return isNewerThan1_20; } + @Override + public boolean isVersionNewerThan1_18() { + return isNewerThan1_18; + } + @Override public boolean isMojmap() { return isMojmap; diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/BukkitWorldAdaptor.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/BukkitWorldAdaptor.java index 1c6fa4d..fc497cf 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/BukkitWorldAdaptor.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/world/adaptor/BukkitWorldAdaptor.java @@ -27,6 +27,7 @@ import com.github.luben.zstd.Zstd; import com.google.gson.Gson; import net.momirealms.customcrops.api.CustomCropsPlugin; import net.momirealms.customcrops.api.manager.ConfigManager; +import net.momirealms.customcrops.api.manager.VersionManager; import net.momirealms.customcrops.api.manager.WorldManager; import net.momirealms.customcrops.api.mechanic.world.*; import net.momirealms.customcrops.api.mechanic.world.level.CustomCropsChunk; @@ -89,11 +90,10 @@ public class BukkitWorldAdaptor extends AbstractWorldAdaptor { return; } - try { + if (VersionManager.isHigherThan1_18()) { world.getPersistentDataContainer().set(key, PersistentDataType.STRING, gson.toJson(cWorld.getInfoData())); - } catch (Exception e) { - // handle exceptions for those servers without pdc + } else { try (FileWriter file = new FileWriter(new File(getWorldFolder(world), "cworld.dat"))) { gson.toJson(cWorld.getInfoData(), file); } catch (IOException ioException) { @@ -120,12 +120,12 @@ public class BukkitWorldAdaptor extends AbstractWorldAdaptor { return; } - try { + if (VersionManager.isHigherThan1_18()) { // init world basic info String json = world.getPersistentDataContainer().get(key, PersistentDataType.STRING); WorldInfoData data = (json == null || json.equals("null")) ? WorldInfoData.empty() : gson.fromJson(json, WorldInfoData.class); cWorld.setInfoData(data); - } catch (Exception e) { + } else { File cWorldFile = new File(getWorldFolder(world), "cworld.dat"); if (cWorldFile.exists()) { byte[] fileBytes = new byte[(int) cWorldFile.length()]; diff --git a/plugin/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml index fa7cae2..1bf4774 100644 --- a/plugin/src/main/resources/plugin.yml +++ b/plugin/src/main/resources/plugin.yml @@ -24,4 +24,28 @@ softdepend: - Jobs - RealisticSeasons - AdvancedSeasons - - SlimeWorldManager \ No newline at end of file + - SlimeWorldManager + - HuskClaims + - HuskTowns + - Residence + - BentoBox + - FabledSkyBlock + - CrashClaim + - GriefDefender + - GriefPrevention + - BentoBox + - IridiumSkyBlock + - KingdomsX + - Landlord + - Lands + - PlotSquared + - ProtectionStones + - RedProtect + - Factions + - SuperiorSkyblock2 + - Towny + - UltimateClaims + - UltimateClans + - uSkyBlock + - WorldGuard + - XClaim \ No newline at end of file