键位检测器

键位检测器

一款适用于 Minecraft 1.21.4-1.21.8 版本的 Fabric 模组。检测所有按键触发,以实现更多按键事件的可能性。

键盘侦测器命令指南

在Minecraft中实现所有按键的高级键盘事件侦测

命令概览

命令 功能 关键参数
iskeydown 单键按下侦测 <KeyAscii>, <keepStatic>
matchgroup 多键组合侦测 <KeyAsciiList>
iskeytapped 瞬时多键组合侦测 <KeyAsciiList>
flush 重置 iskeydown 子命令的按键状态 无

1. 单键侦测:/keyboarddetector iskeydown

功能

侦测特定键盘按键的实时按下状态。

命令语法

/keyboarddetector iskeydown <PlayerID> <KeyAscii>
参数 描述 示例值
<PlayerID> 目标玩家选择器 @p, @a[limit=1], @e[type=player,limit=1]
<KeyAscii> 待侦测按键的ASCII码 49
<keepStatic> 持续状态模式 (true/false) true, false

使用示例

标准模式:

/keyboarddetector iskeydown @p 49 false

侦测按键 '1' 的长按。

持续模式:

/keyboarddetector iskeydown @p 49 true

如果目标玩家曾按下过 '1' 键,命令方块将返回 true 并持续激活红石信号 (直到执行 /keyboarddetector flush)。

命令方块行为

模式 行为
标准模式 (keepStatic=false) • 当所有键同时按下时激活信号
• 当任意键释放时立即关闭信号
持续模式 (keepStatic=true) • 首次成功侦测后锁定信号
• 按键释放后保持激活状态
• 需要手动执行 flush 重置

2. 组合键侦测:/keyboarddetector matchgroup

功能

侦测多个键的同时按下状态(独立按键处理)。

命令语法

/keyboarddetector matchgroup <PlayerID> <KeyAsciiList> <keepStatic>

参数

参数 描述 示例值
<PlayerID> 目标玩家选择器 @p, @a[limit=1], @e[type=player,limit=1]
<KeyAscii> 逗号分隔的ASCII码列表 49,50,51

使用示例

/keyboarddetector matchgroup @p 49,50,51

侦测按键 '1'、'2'、'3' 的同时按下。

命令方块行为

  • 在循环命令方块中:
    • 🔴 按键按下:返回 true 并激活红石信号
    • ⚪ 按键释放:返回 false 并关闭红石信号

3. 瞬时组合键侦测:/keyboarddetector iskeytapped

功能

仅侦测多个按键被按下的瞬间(独立按键处理)。

命令语法

/keyboarddetector iskeytapped <PlayerID> <KeyAsciiList> <keepStatic>

参数

参数 描述 示例值
<PlayerID> 目标玩家选择器 @p, @a[limit=1], @e[type=player,limit=1]
<KeyAscii> 逗号分隔的ASCII码列表 49,50,51

使用示例

/keyboarddetector iskeytapped @p 49,50,51

仅侦测按键 '1'、'2'、'3' 被按下时的瞬间。

命令方块行为

  • 在循环命令方块中:
    • 🔴 按键按下:仅在按键按下的瞬间返回 true 并激活红石信号
    • ⚪ 按键按住:返回 false 并关闭红石信号 (与 /keyboarddetector matchgroup 不同)
    • ⚪ 按键释放:返回 false 并关闭红石信号

4. 状态重置命令:/keyboarddetector flush

功能

清除 iskeydown 配合 keepStatic=true 创建的持续按键状态。

使用场景

  1. 持续模式激活:
/keyboarddetector iskeydown @p 49 true
  1. 按键按下后,信号保持激活

  2. 重置侦测状态 (必须配合条件语句):

/keyboarddetector flush

效果

♻️ 重置所有侦测状态

🚦 需要重新按下组合键才能再次激活

注意事项

❗ 当超过 1 个命令方块同时执行 /keyboarddetector matchgroup 时,确保所有 <AsciiList> 不能包含重复值。否则只有其中一个按键事件能被触发。

❗ 不要在没有条件语句的情况下使用 /keyboarddetector flush。否则所有侦测子命令将不可用。

ASCII 键位参考表

按键 ASCII码 按键 ASCII码
数字 字母
0 48 A 65
1 49 B 66
2 50 C 67
3 51 D 68
4 52 E 69
5 53 F 70
6 54 G 71
7 55 H 72
8 56 I 73
9 57 J 74
K 75
L 76
M 77
N 78
O 79
P 80
Q 81
R 82
S 83
T 84
U 85
V 86
W 87
X 88
Y 89
Z 90
功能键 特殊键
F1 112 空格 32
F2 113 回车 13
F3 114 Esc 27
F4 115 Tab 9
F5 116 Caps Lock 20
F6 117 Shift 16
F7 118 Ctrl 17
F8 119 Alt 18
F9 120 Backspace 8
F10 121 Delete 46
F11 122 Insert 45
F12 123 Home 36
End 35
Page Up 33
Page Down 34
上箭头 38
下箭头 40
左箭头 37
右箭头 39

注意:

  • 小写字母:a=97, b=98 … z=122
  • 数字小键盘:0=96, 1=97 … 9=105
  • 区分大小写(A=65 vs a=97)
  • 完整参考:ASCII 表