配置
箱子面板是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
行数
设置面板槽位的行数。接受:
- 从
1到6的数字(每行9个槽位) - 或者,对于形状布局,可以使用自定义的物品栏类型,例如漏斗
HOPPER
rows: 1
背包锁定
此配置项未在面板中定义时默认为false。
当设置为true时,玩家在面板打开后将无法移动背包内的物品。
inventory-lock: false
跳转兼容
如果玩家是基岩版玩家(通过GeyserMC实现连接),此选项可将他重定向到兼容的基岩面板。
floodgate: 'floodgate_panel_example'
槽位配置
layout属性定义面板中每个槽位要显示哪些物品。
- 槽位编号从
0到53,具体取决于面板行数或容器类型。 - 在每个槽位编号下,你可以定义多个物品名称。
- 插件会按照从上到下的顺序检查该槽位编号下每个物品的条件,第一个符合条件的物品会被显示在面板中。
填充
此特殊槽位项用于向面板中所有的空槽位填充指定的默认物品。fill支持条件逻辑,因此也可显示动态化内容。
layout:
fill:
- '填充的物品名称'
物品逻辑
显示在面板上的物品由items定义。
- 物品可以添加条件决定其是否显示。
- 物品支持的点击事件:
left-click(左键点击)、right-click(右键点击)、shift-left-click(shift+左键点击)、shift-right-click(shift+右键点击)。 - 与其他面板类型相同,你可以使用
actions响应全部操作,它会响应所有类型的点击事件。 - 每种点击类型都可配置独立的命令操作:
commands(执行命令)、requirements(执行条件)和fail(失败处理)。
你只需要在物品中定义一次逻辑,之后即可在layout中随时复用。
玩家背包行为
- 玩家在打开面板后,仍可在他们自身的物品栏中操作移动自己的物品。
- 玩家可以将自己的物品放入面板中的空槽位。
- 这些槽位对玩家而言,与正常状态下的物品栏一致。
- 面板自身的物品是受到保护的,不能被取出和移动。
- 如果面板关闭时玩家的物品还留在面板内,这些物品会掉在地上。
该功能特点非常适用于商店交易界面、物品筛选过滤等场景。
槽位可引用多个物品名称。系统会从上到下逐一判定,第一个匹配的物品将会显示。
若要实现物品交互或动态界面,推荐选用箱子面板。若要使用表单组件(例如按钮、滑块或输入框),推荐选用对话框。