跳到主要内容

配置

箱子面板是CommandPanels中基于物品交互的主要面板类型。它可以让玩家直观地与物品互动,是构建游戏菜单、奖励系统和道具包等功能的理想选择。

概述

箱子面板是最适合玩家与物品交互的界面。面板内的物品可用于触发命令、发送信息或根据逻辑条件来实现动态物品显示。

玩家也可以在面板中的任何空槽位(槽位为空气)放入他们自己的物品。但玩家不能移走面板内已定义的物品。如果玩家在关闭面板后物品还留在面板内,物品会返还给玩家


主要功能

  • 物品交互:物品可以在点击后运行命令、应用条件或展示动画。
  • 基于逻辑的可见性:使用条件控制每个槽位显示哪些物品。
  • 动画:通过定义物品链可实现流畅的物品动画。
  • 支持玩家物品栏操作:玩家可以将背包中的物品放进面板中未使用的槽位。
  • 动态更新:面板可设置周期性更新。

配置选项

类型

箱子面板。

type: 'inventory'

标题

面板标题。支持占位符,例如%player_name%%commandpanels_session_player%

title: '示例标题'

条件

玩家必须符合条件才能打开面板。

conditions: '%player_name% $HASPERM example.permission'

打开命令

玩家在游戏中用于打开面板的命令。你可以添加参数,并在面板内通过%commandpanels_session_<参数>%来引用参数。例如,若打开命令设置为example player,执行/example Halogly会打开面板,并且占位符%commandpanels_session_player%会返回“Halogly”。

command: 'ban player'

命令别名

定义其他也可以打开此面板的等效命令。在主命令中定义的参数同样适用这些别名。因此,如果你定义了command: 'ban player',那么执行/ban Player/mute Player/kick Player/warn Player都会以同样的方式打开这个面板。

aliases: [ 'mute','kick','warn' ]

运行命令

在不同面板事件中运行命令。有关运行命令的详细信息,请参阅命令操作页面。

前置命令

面板打开前要执行的命令。

open:
requirements: []
commands:
- '[msg] 面板已打开'
- '[session] set player Halogly'
fail: []

后置命令

面板关闭时要执行的命令。

close:
requirements: []
commands:
- '[msg] 面板已关闭'
fail: []

外部命令

点击面板界面外部的空白区域时要执行的命令。

outside:
requirements:
- '[vault] 100'
commands:
- '[msg] 一条消息'
fail:
- '[msg] 你需要100¥'

更新延迟

设置面板的更新频率(以刻为单位):

  • 0 = 无更新(静态面板)
  • >0 = 以刻为单位更新面板的内容和动画(20刻 = 1秒)

更新机制

面板更新时,不会重新解析物品条件,更不会根据条件更换显示的物品。它只会刷新当前已有的物品,比如更新占位符的值或继续播放动画。同时,该配置项设置的机制独立于插件的权限监听功能。插件会监听面板逻辑条件中涉及的所有权限,一旦发生变动,便会触发一次完整的解析并自动更新面板。

update-delay: 20

行数

设置面板槽位的行数。接受:

  • 16的数字(每行9个槽位)
  • 或者,对于形状布局,可以使用自定义的物品栏类型,例如漏斗HOPPER
rows: 1

背包锁定

此配置项未在面板中定义时默认为false

当设置为true时,玩家在面板打开后将无法移动背包内的物品。

inventory-lock: false

跳转兼容

如果玩家是基岩版玩家(通过GeyserMC实现连接),此选项可将他重定向到兼容的基岩面板。

floodgate: 'floodgate_panel_example'

槽位配置

layout属性定义面板中每个槽位要显示哪些物品。

  • 槽位编号从053,具体取决于面板行数或容器类型。
  • 在每个槽位编号下,你可以定义多个物品名称
  • 插件会按照从上到下的顺序检查该槽位编号下每个物品的条件,第一个符合条件的物品会被显示在面板中。

填充

此特殊槽位项用于向面板中所有的空槽位填充指定的默认物品。fill支持条件逻辑,因此也可显示动态化内容。

layout:
fill:
- '填充的物品名称'

物品逻辑

显示在面板上的物品由items定义。

  • 物品可以添加条件决定其是否显示。
  • 物品支持的点击事件:left-click(左键点击)、right-click(右键点击)、shift-left-click(shift+左键点击)、shift-right-click(shift+右键点击)。
  • 与其他面板类型相同,你可以使用actions响应全部操作,它会响应所有类型的点击事件。
  • 每种点击类型都可配置独立的命令操作:commands(执行命令)、requirements(执行条件)和fail(失败处理)。

你只需要在物品中定义一次逻辑,之后即可在layout中随时复用。


玩家背包行为

  • 玩家在打开面板后,仍可在他们自身的物品栏中操作移动自己的物品。
  • 玩家可以将自己的物品放入面板中的空槽位
  • 这些槽位对玩家而言,与正常状态下的物品栏一致。
  • 面板自身的物品是受到保护的,不能被取出和移动。
  • 如果面板关闭时玩家的物品还留在面板内,这些物品会掉在地上

该功能特点非常适用于商店交易界面、物品筛选过滤等场景。


条件优先级

槽位可引用多个物品名称。系统会从上到下逐一判定,第一个匹配的物品将会显示。

物品交互用箱子,表单输入用选框

若要实现物品交互动态界面,推荐选用箱子面板。若要使用表单组件(例如按钮、滑块或输入框),推荐选用对话框。