diff --git a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java index 3862a44..5f00366 100644 --- a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java +++ b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java @@ -42,6 +42,9 @@ public class ExtendedAEPlus { // 注册mod初始化事件 modEventBus.addListener(this::commonSetup); + // 注册按键绑定(客户端) + modEventBus.addListener(com.extendedae_plus.client.ModKeybindings::register); + // 注册方块与方块实体 ModBlocks.BLOCKS.register(modEventBus); ModBlockEntities.BLOCK_ENTITY_TYPES.register(modEventBus); diff --git a/src/main/java/com/extendedae_plus/client/ModKeybindings.java b/src/main/java/com/extendedae_plus/client/ModKeybindings.java index 4e4cbc2..5c4fce7 100644 --- a/src/main/java/com/extendedae_plus/client/ModKeybindings.java +++ b/src/main/java/com/extendedae_plus/client/ModKeybindings.java @@ -3,6 +3,7 @@ package com.extendedae_plus.client; import com.mojang.blaze3d.platform.InputConstants; import net.minecraft.client.KeyMapping; import net.minecraftforge.client.settings.KeyConflictContext; +import net.minecraftforge.client.settings.KeyModifier; import org.lwjgl.glfw.GLFW; /** @@ -17,6 +18,7 @@ public final class ModKeybindings { public static final KeyMapping CREATE_PATTERN_KEY = new KeyMapping( "key.extendedae_plus.create_pattern", // 翻译键 KeyConflictContext.GUI, // 仅在GUI中生效 + KeyModifier.CONTROL, // Ctrl 修饰键 InputConstants.Type.KEYSYM, // 键盘按键类型 GLFW.GLFW_KEY_Q, // Q 键 "key.categories.extendedae_plus" // 分类 diff --git a/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java b/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java index a43ac46..8bb097c 100644 --- a/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java +++ b/src/main/java/com/extendedae_plus/client/event/CtrlQPatternKeyHandler.java @@ -44,16 +44,11 @@ public class CtrlQPatternKeyHandler { int keyCode = event.getKeyCode(); int scanCode = event.getScanCode(); - // 使用 KeyMapping 检测按键(而非硬编码) + // 使用 KeyMapping 检测按键(包含修饰键) if (!ModKeybindings.CREATE_PATTERN_KEY.matches(keyCode, scanCode)) { return; } - // 检查 Ctrl 修饰键 - if (!Screen.hasControlDown()) { - return; - } - // JEI 必须可用 if (JeiRuntimeProxy.get() == null) { return;