背包映射表
背包映射用于让 item_slot 直接显示和操作玩家的真实物品。它只在下面的配置中生效:
yaml
itemSlot:
bind: backpack_0
mode: mapped
allowPut: true
allowTake: true客户端只负责显示并提交点击意图,真正的物品读取、交换和写回始终由服务端完成。
主背包与快捷栏
| bind | 对应位置 | 说明 |
|---|---|---|
backpack_0~backpack_8 | 快捷栏第 1~9 格 | 数字从 0 开始,不是从 1 开始。 |
backpack_9~backpack_35 | 主背包其余 27 格 | 按 Minecraft 背包内部顺序依次映射。 |
因此,第 1 个快捷栏槽写作 backpack_0,最后一个快捷栏槽写作 backpack_8,主背包最后一格写作 backpack_35。backpack_36 不存在,会在保存或打开前被拒绝。
主手、副手与盔甲
| bind | 对应位置 | 是否动态 |
|---|---|---|
backpack_mainhand | 当前主手 | 是 |
backpack_offhand | 副手 | 否 |
backpack_helmet | 头盔 | 否 |
backpack_chestplate | 胸甲 | 否 |
backpack_leggings | 护腿 | 否 |
backpack_boots | 靴子 | 否 |
backpack_mainhand 不是额外复制出来的一格。它始终指向玩家当前选中的快捷栏槽。例如当前选择第 4 格时,它与 backpack_3 显示和操作的是同一件物品;玩家切换快捷栏后,它会立即改为指向新的主手。
与玩家常量的区别
映射槽和只读常量用途不同:
itemSlot.bind把页面槽位映射到真实背包,由服务端裁决放入、取出和交换;vals.player.inventory.*只读取客户端当前看到的背包、主手、副手和盔甲状态,不能修改物品。
所有背包汇总字段、装备位置、物品属性和中文写法,请查阅只读常量。
不能用客户端常量发奖励
vals.player.inventory.* 来自客户端本地状态,只适合界面显示、布局和条件。发放奖励、扣除物品或判断玩家是否拥有某件物品时,业务插件必须重新读取服务端背包。
完整 mapped 槽示例
yaml
- id: helmet_slot
type: item_slot
visible: true
enabled: true
pointerEvents: auto
z: 10
layout:
x: 20
y: 20
width: 18
height: 18
itemSlot:
bind: backpack_helmet
mode: mapped
allowPut: true
allowTake: truemapped 模式不要配置 closePolicy。槽位默认没有内置底图;需要背景时可以使用 itemSlot.path,也可以在槽位后面放一个较低 z 的矩形或图片组件。
猹件开发组