From dbd9cdf1f1bc946c5b6305d6dccb019a8f13b123 Mon Sep 17 00:00:00 2001 From: fullwall Date: Fri, 26 Jan 2024 18:55:11 +0800 Subject: [PATCH] Fix hand tracking --- .../net/citizensnpcs/trait/CommandTrait.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java b/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java index 1090a9263..c91b10a79 100644 --- a/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/CommandTrait.java @@ -286,24 +286,25 @@ public class CommandTrait extends Trait { executionErrors.put(player.getUniqueId().toString(), EnumSet.noneOf(CommandTraitError.class)); } for (NPCCommand command : commandList) { - if (executionMode == ExecutionMode.SEQUENTIAL) { - PlayerNPCCommand info = playerTracking.get(player.getUniqueId()); - if (info != null && info.lastUsedHand != hand) { + PlayerNPCCommand info = null; + if (executionMode == ExecutionMode.SEQUENTIAL + && (info = playerTracking.get(player.getUniqueId())) != null) { + if (info.lastUsedHand != hand) { info.lastUsedHand = hand; info.lastUsedId = -1; } - if (info != null && command.id <= info.lastUsedId) { - if (info.lastUsedId == max) { - info.lastUsedId = -1; - } else { + if (command.id <= info.lastUsedId) { + if (info.lastUsedId != max) continue; - } + info.lastUsedId = -1; } } runCommand(player, command); - if (executionMode == ExecutionMode.SEQUENTIAL || charged != null && !charged) { - break; + if (executionMode == ExecutionMode.SEQUENTIAL) { + playerTracking.get(player.getUniqueId()).lastUsedHand = hand; } + if (executionMode == ExecutionMode.SEQUENTIAL || (charged != null && !charged)) + break; } }