背包交互事件
KetherModulesLite 支持监听玩家的背包交互行为,配置文件为 inventory.yml。
事件类型
| 事件标识 | 说明 |
|---|---|
rightClick_item | 在背包中右键点击物品时触发 |
closeInv | 关闭背包时检测指定槽位的物品 |
rightClick_item — 右键物品
当玩家在背包中右键点击匹配条件的物品时触发 Kether 脚本。
匹配条件使用 InferItem 系统,支持按 material(材质)、name(名称)、lore(描述)多维度匹配。所有条件为列表格式,满足任一即匹配。
默认配置:
rightClick_item:
- item:
lore:
- '123'
name:
- '456'
material:
- 'stone'
actions: |-
tell "123"
tell inline "已选择物品 {{ &selectSlot }}"
- item:
material:
- 'furnace'
lore:
- 'kml测试物品'
actions: |-
tell inline "已选择物品 {{ &selectSlot }}"
说明:
item.material— 匹配物品材质(Bukkit 材质名,小写)item.name— 匹配物品显示名称(包含即匹配)item.lore— 匹配物品 Lore 描述(包含即匹配)actions— 匹配成功时执行的 Kether 脚本&selectSlot— 内置变量,表示玩家点击的槽位编号
多个匹配条件可以组合使用,也可以只写其中一个。
closeInv — 关闭背包检测
当玩家关闭背包时,检测指定槽位的物品是否满足条件,满足则执行动作。
默认配置:
closeInv:
- slot: 9
item:
name:
- '456'
actions: |-
tell inline "{{ &selectSlot }} 槽位满足条件 执行动作"
说明:
slot— 要检测的背包槽位编号item— 物品匹配条件(同 rightClick_item 的 item 格式)actions— 条件满足时执行的 Kether 脚本&selectSlot— 内置变量,表示检测的槽位编号
InferItem 匹配系统
背包事件使用 InferItem 匹配系统来判断物品是否符合条件。支持的匹配维度:
| 维度 | 说明 |
|---|---|
material | 物品材质名 |
name | 物品显示名称(包含匹配) |
lore | 物品 Lore 描述行(包含匹配) |
每个维度都是列表格式,列表中的条目为"或"关系(满足任一即可)。多个维度之间为"与"关系(需同时满足)。
示例 — 匹配名称包含"魔法"且材质为钻石剑的物品:
item:
material:
- 'diamond_sword'
name:
- '魔法'