From e181249e38fa2701c182d1f77772200b3c97773b Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 10 Dec 2024 18:36:44 +0800 Subject: [PATCH] 3.6.24 --- .../customcrops/api/core/ConfigManager.java | 2 +- .../common/helper/VersionHelper.java | 4 +++ compatibility-nexo-r1/build.gradle.kts | 2 +- gradle.properties | 6 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- .../bukkit/item/ComponentItemFactory.java | 35 +++++++++++++++---- 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java b/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java index 83a153f..4a35cee 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java @@ -487,7 +487,7 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable { } protected void addDefaultNamespace(File file) { - boolean hasNamespace = PluginUtils.isEnabled("ItemsAdder"); + boolean hasNamespace = PluginUtils.isEnabled("ItemsAdder") || PluginUtils.isEnabled("CraftEngine"); String line; StringBuilder sb = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { diff --git a/common/src/main/java/net/momirealms/customcrops/common/helper/VersionHelper.java b/common/src/main/java/net/momirealms/customcrops/common/helper/VersionHelper.java index 124b5ce..72ffb41 100644 --- a/common/src/main/java/net/momirealms/customcrops/common/helper/VersionHelper.java +++ b/common/src/main/java/net/momirealms/customcrops/common/helper/VersionHelper.java @@ -102,6 +102,10 @@ public class VersionHelper { return version >= 20; } + public static boolean isVersionNewerThan1_21_4() { + return version >= 21.39; + } + public static boolean isFolia() { return folia; } diff --git a/compatibility-nexo-r1/build.gradle.kts b/compatibility-nexo-r1/build.gradle.kts index f778f71..5811307 100644 --- a/compatibility-nexo-r1/build.gradle.kts +++ b/compatibility-nexo-r1/build.gradle.kts @@ -8,7 +8,7 @@ dependencies { compileOnly(project(":api")) compileOnly(project(":common")) compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") - compileOnly("com.nexomc:nexo:0.1.0-dev.6") + compileOnly("com.nexomc:nexo:0.5.0-dev.8") } tasks.withType { diff --git a/gradle.properties b/gradle.properties index 48ab2af..af90660 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.6.23 +project_version=3.6.24 config_version=42 project_group=net.momirealms @@ -18,7 +18,7 @@ asm_commons_version=9.7.1 jar_relocator_version=1.7 adventure_bundle_version=4.17.0 adventure_platform_version=4.3.4 -sparrow_heart_version=0.48 +sparrow_heart_version=0.49 cloud_core_version=2.0.0 cloud_services_version=2.0.0 cloud_brigadier_version=2.0.0-beta.10 @@ -30,7 +30,7 @@ mojang_brigadier_version=1.0.18 bstats_version=3.0.2 geantyref_version=1.3.16 caffeine_version=3.1.8 -rtag_version=1.5.8 +rtag_version=1.5.9 exp4j_version=0.4.8 placeholder_api_version=2.11.6 anti_grief_version=0.13 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f7bde25..9dc5184 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https://services.gradle.org/distributions/gradle-8.11.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/ComponentItemFactory.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/ComponentItemFactory.java index e8b8700..17ac471 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/ComponentItemFactory.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/ComponentItemFactory.java @@ -19,17 +19,43 @@ package net.momirealms.customcrops.bukkit.item; import com.saicone.rtag.RtagItem; import com.saicone.rtag.data.ComponentType; +import net.momirealms.customcrops.common.helper.VersionHelper; import net.momirealms.customcrops.common.item.ComponentKeys; import net.momirealms.customcrops.common.plugin.CustomCropsPlugin; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.function.BiConsumer; +import java.util.function.Function; @SuppressWarnings("UnstableApiUsage") public class ComponentItemFactory extends BukkitItemFactory { + private final BiConsumer customModelDataSetter; + private final Function> customModelDataGetter; + public ComponentItemFactory(CustomCropsPlugin plugin) { super(plugin); + this.customModelDataSetter = VersionHelper.isVersionNewerThan1_21_4() ? + ((item, data) -> item.setComponent(ComponentKeys.CUSTOM_MODEL_DATA, + Map.of("floats", List.of(data.floatValue())))) : ((item, data) -> item.setComponent(ComponentKeys.CUSTOM_MODEL_DATA, data)); + this.customModelDataGetter = VersionHelper.isVersionNewerThan1_21_4() ? + (item) -> { + Optional optional = ComponentType.encodeJava(ComponentKeys.CUSTOM_MODEL_DATA, item.getComponent(ComponentKeys.CUSTOM_MODEL_DATA)); + if (optional.isEmpty()) return Optional.empty(); + @SuppressWarnings("unchecked") + Map data = (Map) optional.get(); + @SuppressWarnings("unchecked") + List floats = (List) data.get("floats"); + if (floats == null || floats.isEmpty()) return Optional.empty(); + return Optional.of((int) Math.floor(floats.get(0))); + } : (item) -> Optional.ofNullable( + (Integer) ComponentType.encodeJava( + ComponentKeys.CUSTOM_MODEL_DATA, + item.getComponent(ComponentKeys.CUSTOM_MODEL_DATA) + ).orElse(null) + ); } @Override @@ -37,19 +63,14 @@ public class ComponentItemFactory extends BukkitItemFactory { if (data == null) { item.removeComponent(ComponentKeys.CUSTOM_MODEL_DATA); } else { - item.setComponent(ComponentKeys.CUSTOM_MODEL_DATA, data); + this.customModelDataSetter.accept(item, data); } } @Override protected Optional customModelData(RtagItem item) { if (!item.hasComponent(ComponentKeys.CUSTOM_MODEL_DATA)) return Optional.empty(); - return Optional.ofNullable( - (Integer) ComponentType.encodeJava( - ComponentKeys.CUSTOM_MODEL_DATA, - item.getComponent(ComponentKeys.CUSTOM_MODEL_DATA) - ).orElse(null) - ); + return this.customModelDataGetter.apply(item); } @SuppressWarnings("unchecked")