跳转到正文
iPlugin

物品交互面板

设置可存取槽位、变化事件与物品操作。

crafting 面板接收玩家放入的真实物品,关闭窗口时返还区域内的物品。

可交互区域

plugins/Invero/workspace/storage-demo.yml
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,让玩家从背包放入或取出物品。窗口模式与背包区域设置见窗口设置。

最后更新于