跳到主要内容

配置

对话框面板使用按钮、滑块、单选按钮和其他表单类元素提供结构化输入界面。与箱子面板不同,对话框面板是Minecraft风格的菜单布局排列,非常适合自定义表单、菜单或用户设置。

提示

从箱子面板打开对话框面板,请先运行关闭箱子面板的命令。否则箱子面板会在后台保持开启,在对话框面板关闭时重新打开。


概述

对话框面板不使用物品槽位的形式定义,而是通过线性或网格状布局的形式来排列UI组件。玩家可以与文本、选项、输入字段、按钮等进行交互。

对话框面板由两大部分组成:

  • layout:定义组件的布局和顺序。
  • items:定义面板中使用的每个UI元素。

主要功能

  • 文本与信息块:使用富文本或可悬停显示的提示框来说明功能。
  • 用户输入:文本框、复选框、滑条和单选按钮支持规范的数据输入。
  • 逻辑按钮:按钮可以运行服务器命令、打开网页链接或切换到其他面板。
  • 组件布局:使用layoutitems组织元素。
对话框渲染顺序

对话框遵循三段式布局

  1. 文本和物品组件始终位于顶部。
  2. 输入组件(如输入框、单选按钮、滑块、复选框)位于中部。
  3. 按钮位于底部。

你可以在layout中自定义每个区域内部的组件顺序,但所有组件均严格遵循此“上-中-下”的类型分组布局。


配置选项

类型

对话框面板。

type: 'dialog'

标题

面板的标题。

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: []

跳转兼容

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

floodgate: 'floodgate_panel_example'

退出按钮

如果设置为true,则按顺序列出的最后一个按钮将移动到对话框底部的退出按钮的位置。如果用户按ESC键来关闭对话框,即便未按下对话框内的退出按钮,退出按钮的命令操作也会被触发。

has-exit-button: false
注意

如果你的面板中只配置了一个按钮,那么该按钮就是面板中唯一的按钮。 一旦将此选项设为true,该按钮就会成为面板的退出按钮,不再作为面板的组件存在,从而导致面板内没有可点击的按钮,对话框也就无法打开。 因此,在将该选项设置为true之前,请确保你的面板中至少包含两个按钮。

允许退出

如果为true,则玩家可以通过按ESC键或点击表单取消的按钮来退出对话框。

escapable: true

列数

设置对话框的列数。

columns: 1

布局顺序

layout决定组件的显示顺序。

每个条目都遵循以下格式:

layout:
0:
- '<组件名称>'
- '<组件名称>'

面板按照数字编号的顺序依次处理并渲染组件。如果多个组件列在相同的数字编号下,插件会从上到下解析它们的显示条件,第一个符合条件的组件将会显示。

注意

组件的渲染顺序并非由items决定,而是由layout决定。