物品交互面板
设置可存取槽位、变化事件与物品操作。
crafting 面板接收玩家放入的真实物品,关闭窗口时返还区域内的物品。
可交互区域
menu:
title: '&8物品交互测试'
rows: 1
virtual: false
panels:
- layout:
- '## ##'
crafting:
listener: "mmsg '&7物品区域发生变化'"
icons:
'#':
material: GRAY_STAINED_GLASS_PANE
name: ' '下载 storage-demo.yml。中间五格可存取,两端为装饰图标;存储变化时 listener 发送消息。
面板字段
以下字段写在 panels 中包含 crafting 的那一项:
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
layout | 文字列表 | 是 | — | 空格位置开放真实物品存取 |
scale | 两项整数列表 | 否 | 根据 layout 确定 | 面板宽度、高度 |
locate | 两项整数列表 | 否 | 在父容器中自动放置 | 面板起点坐标 |
icons(icon、item、items) | 图标映射 | 是 | — | 固定按钮与装饰,不作为存取内容 |
crafting | 交互设置对象 | 是 | — | 声明真实物品交互区域 |
写在 crafting 中:
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
listener | 动作或动作列表 | 否 | 不执行变化动作 | 存储内容变化后执行,例如更新状态图标 |
槽位设置
layout 中的空格默认开放存取。storage 操作使用当前交互面板的局部槽位序号:
storage at 2 lock
storage at 6 free锁定槽位 2、开放槽位 6。锁定后保留该位置的物品,仅限制玩家操作。
存储语句
| 语句 | 作用 |
|---|---|
storage at 2 exists | 是否有物品 |
storage at 2 empty | 是否为空 |
storage at 2 get | 读取物品 |
storage at 2 set to item 'APPLE' amount 1 | 设置一个苹果 |
storage at 2 del | 删除槽位物品 |
storage at 2 lock / storage at 2 free | 锁定 / 开放 |
storage at 2 isLocked / storage at 2 isFree | 查询操作状态 |
删除物品
storage del 会删除真实物品,不会返还给玩家。兑换或合成时,将输入检查和扣除放在同一个点击动作中。
变化事件
# 写在面板中
crafting:
listener: "icon by 'S' refresh"listener 在存储内容变化时执行,上例刷新对应面板中 ID 为 S 的状态图标;该图标由你的 icons 配置定义。多个面板时,可以先使用 panel 选择目标面板。兑换与合成的规则由图标 action 配置。
物品存取使用 virtual: false,并保持 hide-player-inventory: false,让玩家从背包放入或取出物品。窗口模式与背包区域设置见窗口设置。
最后更新于