跳转至

对话系统

对话命令可使用专属命令机制,详见 此处

主标签始终在顶部(可选),然后依次是视觉字段、输入字段和自定义按钮。这是 Minecraft 对话窗口的处理顺序,未来可能改变。

每个文件可包含多个对话,便于组织。

welcome:
  Enabled: true
  Label: '{#white}欢迎 {#gray}%cmi_user_display_name% {#white}来到 {#edward}%cmi_user_world_formatted%'
  Description:
    Width: 300
    Lines:
      - '{#green}地球上最好的 Minecraft 服务器!'
      - ''
      - '{#white}很高兴你在这里 %cmi_user_display_name%{#white}!'
      - '如有问题,请随时询问管理员'
  VisualFields:
    - Width: 300
      Lines:
        - '{#brown}额外信息行!'
  Buttons:
    Columns: 3
    List:
      - Label: '{#red}阅读规则'
        Width: 100
        OpenDialog: license
        Tooltip:
          - '{#red}开始游戏前请先阅读!'
      - Label: '{#green}读个笑话'
        Width: 100
        OpenDialog: 'randomtext'
      - Label: '{#edward}开始游戏'
        Width: 100
        Commands:
          - closeinv!

字段说明

  • Enabled — 启用/禁用对话
  • Label — 顶部标题(可选)
  • Description — 描述区域(Width: 宽度, Lines: 文本行)
  • VisualFields — 视觉字段(仅显示信息)
  • Buttons — 按钮区域
  • Columns — 列数
  • Label — 按钮文本
  • Width — 按钮宽度
  • OpenDialog — 点击打开另一个对话
  • Tooltip — 悬停提示
  • Commands — 点击执行的命令
  • InputFields — 输入字段(玩家可输入文本)
  • Label — 输入框标签
  • Key — 用于在命令中引用输入值的键名
  • Width — 输入框宽度
  • Default — 默认值
  • MaxLength — 最大长度

输入字段示例

inputexample:
  Enabled: true
  Label: '选择物品'
  InputFields:
    - Label: '输入物品名称'
      Key: itemname
      Width: 200
      Default: 'diamond'
      MaxLength: 50
  Buttons:
    Columns: 1
    List:
      - Label: '{#green}确认'
        Width: 200
        Commands:
          - closeinv!
          - asConsole! cmi give [playerName] %dialog_input_itemname% 1
      - Label: '{#red}取消'
        Width: 200
        Commands:
          - closeinv!

使用 %dialog_input_键名% 引用输入字段的值。

命令

/cmi dialog [对话名] (玩家名) — 打开对话
/cmi dialogeditor — 对话编辑器 GUI