From 35b63b163031b5af47dce8eba47756d1bc28e0dc Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Fri, 5 Dec 2025 20:34:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=8D=E5=A4=8D=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/entity/furniture/BukkitFurnitureManager.java | 1 - .../bukkit/plugin/network/BukkitNetworkManager.java | 6 ++++-- .../resources/default/configuration/templates/events.yml | 4 ++++ .../core/entity/furniture/AbstractFurnitureManager.java | 1 - .../craftengine/core/item/recipe/CustomShapelessRecipe.java | 1 - 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java index 6a441f42f..e5c9087f6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java @@ -13,7 +13,6 @@ import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.core.entity.furniture.*; import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxConfig; import net.momirealms.craftengine.core.entity.furniture.tick.FurnitureTicker; -import net.momirealms.craftengine.core.entity.furniture.tick.TickingFurniture; import net.momirealms.craftengine.core.entity.furniture.tick.TickingFurnitureImpl; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.sound.SoundData; diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index 24a96b9f9..113268a15 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -3813,12 +3813,14 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes if (cancellable.isCancelled()) { return; } - // 不处理调试棒 if (itemInHand.vanillaId().equals(ItemKeys.DEBUG_STICK)) { return; } - + // 已经有过交互了 + if (serverPlayer.lastSuccessfulInteractionTick() == serverPlayer.gameTicks()) { + return; + } // 必须从网络包层面处理,否则无法获取交互的具体实体 if (serverPlayer.isSecondaryUseActive() && !itemInHand.isEmpty() && hitBox.config().canUseItemOn()) { Optional> optionalCustomItem = itemInHand.getCustomItem(); diff --git a/common-files/src/main/resources/resources/default/configuration/templates/events.yml b/common-files/src/main/resources/resources/default/configuration/templates/events.yml index fd93462b9..cf28a87f6 100644 --- a/common-files/src/main/resources/resources/default/configuration/templates/events.yml +++ b/common-files/src/main/resources/resources/default/configuration/templates/events.yml @@ -21,7 +21,9 @@ templates: conditions: - type: expression expression: + - type: "!has_item" functions: + - type: update_interaction_tick - type: rotate_furniture degree: 90 on-success: @@ -47,9 +49,11 @@ templates: conditions: - type: expression expression: + - type: "!has_item" - type: "!match_furniture_variant" variants: ${blacklist_variants:-null} functions: + - type: update_interaction_tick - type: rotate_furniture degree: 45 on-success: diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java index 038b240e2..b4460723c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java @@ -1,7 +1,6 @@ package net.momirealms.craftengine.core.entity.furniture; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import net.momirealms.craftengine.core.block.entity.tick.TickingBlockEntity; import net.momirealms.craftengine.core.entity.furniture.behavior.FurnitureBehaviorTypes; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfig; import net.momirealms.craftengine.core.entity.furniture.element.FurnitureElementConfigs; diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomShapelessRecipe.java b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomShapelessRecipe.java index 380ae3bca..f2f2a4340 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomShapelessRecipe.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/recipe/CustomShapelessRecipe.java @@ -11,7 +11,6 @@ import net.momirealms.craftengine.core.util.Key; import net.momirealms.craftengine.core.util.MiscUtils; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List;