From 08e3ba6f1db6938569452832fbecd3d8e6bb7cee Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Mon, 24 Feb 2025 17:40:23 +0800 Subject: [PATCH] Improve vanilla crop check --- api/build.gradle.kts | 1 + .../customcrops/api/core/ConfigManager.java | 1 - .../customcrops/api/core/item/WateringCanItem.java | 14 ++++++++++---- gradle.properties | 7 ++++--- plugin/build.gradle.kts | 1 + .../customcrops/bukkit/item/BukkitItemFactory.java | 2 +- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 509ba8e..127b17e 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -34,6 +34,7 @@ dependencies { compileOnly("com.saicone.rtag:rtag:${rootProject.properties["rtag_version"]}") compileOnly("net.objecthunter:exp4j:${rootProject.properties["exp4j_version"]}") compileOnly("com.google.guava:guava:${rootProject.properties["guava_version"]}") + compileOnly("io.netty:netty-all:${rootProject.properties["netty_version"]}.Final") } java { 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 4a35cee..48e89fd 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 @@ -56,7 +56,6 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable { VANILLA_CROPS = Collections.unmodifiableSet(set); } - private static ConfigManager instance; protected final BukkitCustomCropsPlugin plugin; diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java b/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java index f6bf596..45ffed1 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/item/WateringCanItem.java @@ -46,6 +46,7 @@ import net.momirealms.customcrops.api.util.LocationUtils; import net.momirealms.customcrops.common.helper.AdventureHelper; import net.momirealms.customcrops.common.item.Item; import net.momirealms.customcrops.common.util.Pair; +import net.momirealms.sparrow.heart.SparrowHeart; import org.bukkit.FluidCollisionMode; import org.bukkit.Location; import org.bukkit.Material; @@ -58,11 +59,16 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.RayTraceResult; import org.bukkit.util.Vector; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; +import java.util.*; public class WateringCanItem extends AbstractCustomCropsItem { + private static final Set VANILLA_CROP_STATES = new HashSet<>(); + + static { + for (Material material : ConfigManager.VANILLA_CROPS) { + VANILLA_CROP_STATES.addAll(SparrowHeart.getInstance().getAllBlockStates(material)); + } + } public WateringCanItem() { super(BuiltInItemMechanics.WATERING_CAN.key()); @@ -278,7 +284,7 @@ public class WateringCanItem extends AbstractCustomCropsItem { // if the clicked block is a crop, correct the target block List cropConfigs = Registries.STAGE_TO_CROP_UNSAFE.get(targetBlockID); - if (cropConfigs != null || Registries.ITEM_TO_DEAD_CROP.containsKey(targetBlockID)) { + if (cropConfigs != null || Registries.ITEM_TO_DEAD_CROP.containsKey(targetBlockID) || VANILLA_CROP_STATES.contains(targetBlockID)) { // is a crop targetLocation = targetLocation.subtract(0,1,0); targetBlockID = BukkitCustomCropsPlugin.getInstance().getItemManager().blockID(targetLocation); diff --git a/gradle.properties b/gradle.properties index 9e374e3..e48c688 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.6.30 +project_version=3.6.31 config_version=42 project_group=net.momirealms @@ -16,9 +16,9 @@ gson_version=2.11.0 asm_version=9.7.1 asm_commons_version=9.7.1 jar_relocator_version=1.7 -adventure_bundle_version=4.18.0 +adventure_bundle_version=4.19.0 adventure_platform_version=4.3.4 -sparrow_heart_version=0.49 +sparrow_heart_version=0.51 cloud_core_version=2.0.0 cloud_services_version=2.0.0 cloud_brigadier_version=2.0.0-beta.10 @@ -38,6 +38,7 @@ zstd_version=1.5.6-9 flow_nbt_version=2.0.2 guava_version=33.3.1-jre vault_version=1.7 +netty_version=4.1.117 # Proxy settings #systemProp.socks.proxyHost=127.0.0.1 diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index deb0e90..8576047 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -45,6 +45,7 @@ tasks { from(project(":compatibility-oraxen-r2").tasks.jar.get().archiveFile) from(project(":compatibility-itemsadder-r1").tasks.jar.get().archiveFile) from(project(":compatibility-crucible-r1").tasks.jar.get().archiveFile) + from(project(":compatibility-craftengine-r1").tasks.jar.get().archiveFile) archiveFileName = "CustomCrops-${rootProject.properties["project_version"]}.jar" destinationDirectory.set(file("$rootDir/target")) relocate("net.kyori", "net.momirealms.customcrops.libraries") diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemFactory.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemFactory.java index c49222d..e3357eb 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemFactory.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemFactory.java @@ -45,7 +45,7 @@ public abstract class BukkitItemFactory extends ItemFactory { + "1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4", "1.21.5" -> { return new ComponentItemFactory(plugin); } default -> throw new IllegalStateException("Unsupported server version: " + plugin.getServerVersion());