From f4f616000eaa7786df565552a66c71c2410d6d7b Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Thu, 3 Apr 2025 02:00:20 +0800 Subject: [PATCH] improve interaction --- .../momirealms/customcrops/api/core/block/CropBlock.java | 3 +++ gradle.properties | 2 +- .../customcrops/bukkit/item/BukkitItemManager.java | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java b/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java index 55597b3..1211ccb 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/block/CropBlock.java @@ -46,6 +46,7 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.FixedMetadataValue; import java.util.List; import java.util.Objects; @@ -286,6 +287,8 @@ public class CropBlock extends AbstractCustomCropsBlock { ActionManager.trigger(blockContext, stage.growActions()); } } + + player.setMetadata("customcrops_tick", new FixedMetadataValue(BukkitCustomCropsPlugin.getInstance().getBootstrap(), player.getTicksLived())); return; } } diff --git a/gradle.properties b/gradle.properties index 4f8ee75..5e2343f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=3.6.32.3 +project_version=3.6.33 config_version=42 project_group=net.momirealms diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java index 65daf9a..a8b156a 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java @@ -52,6 +52,7 @@ import org.bukkit.event.player.PlayerItemDamageEvent; import org.bukkit.inventory.EquipmentSlot; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.metadata.MetadataValue; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -521,6 +522,14 @@ public class BukkitItemManager extends AbstractItemManager { } if (wrapped.isCancelled()) return; + Player player = wrapped.player(); + if (wrapped.hand() == EquipmentSlot.OFF_HAND && player.hasMetadata("customcrops_tick")) { + List list = player.getMetadata("customcrops_tick"); + if (!list.isEmpty() && player.getTicksLived() == list.get(0).asInt()) { + player.removeMetadata("customcrops_tick", plugin.getBootstrap()); + return; + } + } CustomCropsBlock customCropsBlock = Registries.BLOCKS.get(blockID); if (customCropsBlock != null) {