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