From b7e7c9990f0753e1ad87618a164ec0969610f627 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Mon, 14 Apr 2025 19:40:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=AF=E6=89=8B=E6=94=BE?= =?UTF-8?q?=E7=BD=AE=E6=96=B9=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/bukkit/item/ItemEventListener.java | 2 +- .../craftengine/bukkit/plugin/user/BukkitServerPlayer.java | 5 +++++ .../momirealms/craftengine/core/entity/player/Player.java | 2 ++ gradle.properties | 4 ++-- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ItemEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ItemEventListener.java index e5ae2d0ad..27319d9ba 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ItemEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/ItemEventListener.java @@ -219,7 +219,7 @@ public class ItemEventListener implements Listener { int currentTicks = player.gameTicks(); // The client will send multiple packets to the server if the client thinks it should // However, if the main hand item interaction is successful, the off-hand item should be blocked. - if (!player.updateLastSuccessfulInteractionTick(currentTicks)) { + if (player.lastSuccessfulInteractionTick() == currentTicks) { event.setCancelled(true); return true; } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index 398b5528b..130b1ec19 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -156,6 +156,11 @@ public class BukkitServerPlayer extends Player { } } + @Override + public int lastSuccessfulInteractionTick() { + return lastSuccessfulInteraction; + } + @Override public int gameTicks() { try { diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java b/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java index d083ef8f3..e23eb0a40 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/player/Player.java @@ -53,6 +53,8 @@ public abstract class Player extends Entity implements NetWorkUser { public abstract boolean updateLastSuccessfulInteractionTick(int tick); + public abstract int lastSuccessfulInteractionTick(); + public abstract int gameTicks(); public abstract void swingHand(InteractionHand hand); diff --git a/gradle.properties b/gradle.properties index ceb4a5e1c..d337d0b44 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=0.0.47.3 +project_version=0.0.47.4 config_version=25 lang_version=4 project_group=net.momirealms @@ -51,7 +51,7 @@ byte_buddy_version=1.17.5 ahocorasick_version=0.6.3 snake_yaml_version=2.4 anti_grief_version=0.13 -nms_helper_version=0.57.3 +nms_helper_version=0.58 # Ignite Dependencies mixinextras_version=0.4.1 mixin_version=0.15.2+mixin.0.8.7