按键检测(KeyHelper)

基本信息

属性 值
类型 底层键盘轮询辅助类
源码 squeek.wailaharvestability.helpers.KeyHelper(22 行)
注册的按键绑定 无
配置项 无
调用点 无

概述

KeyHelper 提供两个静态方法,直接轮询 LWJGL 的 Keyboard 状态,用于判断修饰键是否按下。

⚠️ 本 fork 中这两个方法没有任何调用点。 源码里除 KeyHelper 自身之外,没有任何类引用 KeyHelper、isCtrlKeyDown 或 isShiftKeyDown。它是上游遗留代码。

两个方法

方法 判定键位
isCtrlKeyDown() Keyboard.KEY_LCONTROL 或 Keyboard.KEY_RCONTROL
isShiftKeyDown() Keyboard.KEY_LSHIFT 或 Keyboard.KEY_RSHIFT

macOS 的特殊处理

isCtrlKeyDown() 内含一段 macOS 兜底:

boolean isCtrlKeyDown = Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL);
if (!isCtrlKeyDown && Minecraft.isRunningOnMac)
    isCtrlKeyDown = Keyboard.isKeyDown(Keyboard.KEY_LMETA) || Keyboard.isKeyDown(Keyboard.KEY_RMETA);

即在 macOS 上按住 Command(⌘) 也算 Ctrl。源码注释解释了原因:GuiScreen#isCtrlKeyDown 在 Mac 上只认 OPTION 键(⌥),不认 Command,与 Windows/Linux 的行为不一致。

isShiftKeyDown() 没有这段兜底。

与真正热键的区别

要素 KeyHelper 真正的按键绑定
注册 无 ClientRegistry.registerKeyBinding
配置文件写入 无 写入 options.txt
可在设置界面改键 否 是
冲突检测 无 有
用户可见性 不可见 可见

因此本模组没有任何用户可配置的按键,keybinding 维度在源码中不存在对应的注册内容。

相关条目