跳到主要内容

InputTracker

通过 F、Q、Shift、Ctrl、快捷栏槽位和可点击的物品栏按钮来执行动作。

免费v0.5实用工具
依赖TypeWriter0.9Paper1.21+

概览​

InputTracker 将键盘和物品栏变成 TypeWriter 的触发器。它会监听一组玩家输入(交换手持物、丢弃、潜行、疾跑、聊天、命令和快捷栏选择),并运行你选择的动作。它还可以在玩家物品栏或 2x2 合成格中固定按钮:这些物品无法被移动、丢弃或放置,点击时会运行动作。

所有内容都在一个清单条目 Input Trigger Config 中配置。它适用于 RPG 风格的快捷操作,例如按 F 键打开菜单,或在最后一个快捷栏槽位给每位玩家一个“菜单”时钟。

功能​

  • 七种输入 — 交换手持物(F)、丢弃(Q)、潜行(Shift)、疾跑(Ctrl)、聊天消息、命令和快捷栏槽位选择。
  • 取消原始动作 — 可选择阻止原版行为,例如让 F 键不再交换物品。
  • 条件、延迟和冷却 — 仅在条件匹配时运行,可延迟若干 tick,两次触发之间可设置冷却。
  • 物品栏按钮 — 固定在指定槽位的物品,无法被移动、丢弃、放置或食用。
  • 点击类型 — 针对左键、右键、Shift+左键、Shift+右键、丢弃、双击分别设置不同的动作,或使用任意点击作为后备。
  • 世界中的快捷栏按钮 — 手持按钮时的左键和右键点击会运行其动作。
  • 合成格按钮 — 位于 2x2 合成格中的按钮,当按钮占据合成格时合成功能被禁用。
  • 按按钮设置条件 — 每个按钮以及每个点击绑定都可以有自己的条件。

安装​

  1. 使用 Paper 1.21 或更高版本。不需要数据包库。
  2. 将 InputTracker 的 JAR 放入 plugins/Typewriter/extensions/ 并重启服务器。

该扩展使用 Bukkit 调度器来安排延迟,因此适用于 Paper,而不适用于 Folia。

快速上手​

玩家按 F 时打开菜单,并给每位玩家一个菜单按钮:

  1. 在 TypeWriter 网页面板中,打开一个**清单(manifest)**页面,添加一个 Input Trigger Config 条目。只创建一个:会使用找到的第一个。
  2. 在 keybinds 中添加一项。将 type 设为 SWAP_HAND,勾选 enabled(默认关闭),并勾选 cancelAction,这样双手就不会被交换。
  3. 在它的 actions 中,选择用于打开你菜单的动作条目。将 cooldown 设为 10 tick,以避免重复触发。
  4. 在 inventoryButtons 中添加一项。将 slot 设为 8(最后一个快捷栏槽位),并选择要显示的 item,例如一个名为 <gold>Menu 的时钟。
  5. 在它的 clickActions 中,添加一个 clickType 为 LEFT 的绑定,并在 actions 中填入相同的动作。
  6. 发布。玩家在加入或重生时会获得该按钮。
注意

按钮会替换其 slot 中原有的任何物品。请选择玩家不会用来放自己物品的槽位。

注意

只要玩家携带至少一个按钮,就无法死亡:本应致命的伤害会被取消。请围绕这一点规划你的游戏设计,或者在玩家必须能够死亡的场景中移除这些按钮。

工作原理​

按键绑定。 对于每个 type,只会使用 keybinds 中的第一个定义,因此同一种输入不能有两个定义。这也包括 HOTBAR_SLOT:它只响应由 hotbarSlot 选定的单个槽位。

每种输入的确切含义:

类型触发时机
SWAP_HAND玩家按下 F。
DROP玩家按下 Q 丢弃物品(光标上持有物品时不会触发)。
SNEAK玩家开始潜行。
SPRINT玩家开始疾跑。
CHAT玩家发送聊天消息。仅按 T 不会有任何作用。
COMMAND玩家运行命令。
HOTBAR_SLOT玩家选择快捷栏槽位 hotbarSlot(0 到 8)。

启用 cancelAction 后,原始事件会被取消:不会交换双手,消息或命令也不会被发送。对于 DROP,dropCount(-1 表示整组物品,大于 1 的数字表示自定义数量)仅在 cancelAction 开启时使用。

按钮。 按钮是带有标记的物品。当玩家加入、重生或打开合成物品栏时,它们会被放入玩家的物品栏。它们无法被移动、拖动、丢弃、交换到副手、放置或食用。

点击按钮时,扩展会选取第一个 clickType 与该点击匹配且 criteria 通过的 clickActions 绑定。如果没有,则使用第一个条件通过的 ALL 绑定。中键点击或数字键视为左键点击。在世界中,手持按钮时的左键和右键点击分别视为 LEFT 和 RIGHT。

配置​

所有设置都是 Input Trigger Config 条目的字段。

keybinds 字段

字段说明
type要监听的输入。
enabled必须开启,该定义才会生效。默认关闭。
cancelAction取消原版行为。
actions要运行的动作条目。
delay运行动作之前等待的 tick 数(0 表示立即运行)。
cooldown同一玩家同一输入两次触发之间的 tick 数(0 表示无冷却)。
dropCount用于 DROP。1 为单个物品,-1 为整组物品。
hotbarSlot用于 HOTBAR_SLOT:槽位,0 到 8。
criteria触发运行所需满足的条件。

inventoryButtons 字段

字段说明
slot物品栏槽位,0 到 40(0 到 8 为快捷栏,36 到 39 为盔甲,40 为副手)。在合成格中为 0 到 4。
item作为按钮显示的物品。
clickActions绑定列表,每项包含 clickType、actions 和 criteria。
delay运行动作前的 tick 数。
isCraftingGrid将按钮放在 2x2 合成格而不是物品栏中。
criteria点击该按钮要产生效果所需满足的条件。

在合成格中,槽位 0 是结果槽位,其作用相当于“提交”按钮,槽位 1 到 4 是四个合成格槽位。当按钮占据某个合成格槽位时,合成结果会被阻止,因此没有人可以复制物品。

条目​

1 个条目,由扩展源码生成。

清单1

故障排查​

按键绑定没有任何作用。 enabled 默认是关闭的。同时请检查该定义是否有 actions、criteria 是否匹配,以及同一个 type 是否只有一个定义:只会读取第一个。条目必须已发布,并且只能有一个 Input Trigger Config。

动作只是偶尔运行。 cooldown 对同一玩家和同一输入是共享的,单位为 tick(20 tick 为一秒)。即使冷却阻止了动作,cancelAction 仍然生效。DROP 不使用冷却。

F 或 Q 键仍会执行其正常动作。 请勾选 cancelAction。对于聊天和命令输入,cancelAction 会阻止消息或命令被发送。

按钮无法点击,或没有任何作用。 当按钮的 criteria 不通过,或没有 clickActions 绑定匹配该点击类型且没有 ALL 绑定时,点击不会有任何作用。actions 必须是动作条目。

物品栏中的某个物品消失了。 每次放置按钮时,按钮都会替换其 slot 中的物品。请选择一个空闲的槽位。

已删除的按钮仍留在物品栏中。 按钮是由扩展标记的物品。当你在配置中删除或移动按钮时,旧的物品会在玩家下次关闭物品栏、加入或重生时被清除,并重新放置当前的按钮。

玩家不会死亡。 这是有意为之:携带按钮的玩家不会受到致命伤害。