diff --git a/src/main/java/me/desht/pneumaticcraft/client/gui/widget/WidgetKeybindCheckBox.java b/src/main/java/me/desht/pneumaticcraft/client/gui/widget/WidgetKeybindCheckBox.java index f931fb712..fea238599 100644 --- a/src/main/java/me/desht/pneumaticcraft/client/gui/widget/WidgetKeybindCheckBox.java +++ b/src/main/java/me/desht/pneumaticcraft/client/gui/widget/WidgetKeybindCheckBox.java @@ -306,20 +306,22 @@ public static class KeyDispatcher { @SubscribeEvent public static void onKeyPress(InputEvent.Key event) { if (Minecraft.getInstance().screen == null && event.getAction() == GLFW.GLFW_PRESS) { - processInput(KEY_BINDING_MAP.getAll(InputConstants.Type.KEYSYM.getOrCreate(event.getKey()))); + InputConstants.Key key = InputConstants.Type.KEYSYM.getOrCreate(event.getKey()); + processInput(key, KEY_BINDING_MAP.getAll(key)); } } @SubscribeEvent public static void onMouseClick(InputEvent.MouseButton event) { if (Minecraft.getInstance().screen == null && event.getAction() == GLFW.GLFW_PRESS) { - processInput(KEY_BINDING_MAP.getAll(InputConstants.Type.MOUSE.getOrCreate(event.getButton()))); + InputConstants.Key key = InputConstants.Type.MOUSE.getOrCreate(event.getButton()); + processInput(key, KEY_BINDING_MAP.getAll(key)); } } - private static void processInput(List mappingList) { + private static void processInput(InputConstants.Key key, List mappingList) { mappingList.stream() - .filter(binding -> binding.getKeyModifier() == KeyModifier.getActiveModifier()) + .filter(binding -> binding.isActiveAndMatches(key) && binding.getKeyModifier() == KeyModifier.getActiveModifier()) .forEach(binding -> getBoundWidget(binding.getName()).ifPresent(WidgetKeybindCheckBox::handleClick)); } diff --git a/src/main/java/me/desht/pneumaticcraft/client/pneumatic_armor/ClientArmorRegistry.java b/src/main/java/me/desht/pneumaticcraft/client/pneumatic_armor/ClientArmorRegistry.java index 0c624f860..741714886 100644 --- a/src/main/java/me/desht/pneumaticcraft/client/pneumatic_armor/ClientArmorRegistry.java +++ b/src/main/java/me/desht/pneumaticcraft/client/pneumatic_armor/ClientArmorRegistry.java @@ -188,7 +188,9 @@ public IArmorUpgradeClientHandler getClientHandler(ResourceLocation id) { } public Optional> getTriggeredHandler(KeyMapping keyBinding) { - return Optional.ofNullable(triggerKeyBindMap.get(keyBinding.getName())); + return keyBinding.getKeyModifier() == KeyModifier.getActiveModifier() ? + Optional.ofNullable(triggerKeyBindMap.get(keyBinding.getName())) : + Optional.empty(); } /**