Skip to content
iPlugin

MiniMessage

查阅 mmsg 的标签、别名、悬停与点击参数,以及物品和聊天的显示边界。

消息写法

在图标的 action 中使用 mmsg(minimessage、mmessage):

图标动作片段
action: "mmsg '<green>欢迎回来,{{player name}}</green>'"

点击图标后向当前玩家发送聊天消息。入口使用默认开启的 Kether.auto-placeholder-translate,详见文本写法。

消息文字采用 <标签:参数>内容</标签>,参数用冒号分隔;参数本身有空格、冒号或嵌套内容时使用单引号或双引号。建议写全闭合标签,不依赖宽松解析补全。

常用效果

图标动作片段
action: "mmsg '<aqua><bold>菜单帮助</bold></aqua>'"

样式标签

本表的“省略”指没有使用该标签;外层标签仍可向内继承样式。以下为默认可用的标签类别,不需要自行登记同名 Invero 字段。

字段类型必填省略行为说明
颜色名、#RRGGBB颜色标签否使用外层或默认颜色如 <green>、<#47856e>;标准颜色名见颜色表,使用小写;grey、dark_grey 也是别名
color(colour、c)颜色参数否;写标签时需给值不指定该层颜色<color:green>,颜色名或六位十六进制
bold(b)布尔样式否不主动加粗<bold>;<bold:false> 或 <!bold> 明确关闭
italic(em、i)布尔样式否不主动设斜体<italic>;同样可用 false 或 ! 关闭
underlined(u)布尔样式否不主动加下划线与 TabooLib 的 u 属性区分标签形式
strikethrough(st)布尔样式否不主动加删除线不是 TabooLib 的 s 属性
obfuscated(obf)布尔样式否不主动混淆文字随机字符效果
font字体标识参数否;写标签时需给值使用继承或默认字体<font:minecraft:default>;自定义字体需客户端资源包
gradient颜色参数,末尾可加相位否不添加渐变<gradient:#47856e:#2c89a0>;颜色至少两种,相位范围 -1~1,省略相位为 0;无颜色参数时使用白到黑
transition颜色参数,末尾可加相位否不添加此配色从一组颜色按相位选择统一颜色;相位 -1~1,默认 0;无颜色时使用白、黑
rainbow可选方向与整数相位否不添加彩虹<rainbow>,相位默认 0;<rainbow:!2> 表示反向和相位 2
pride可选配色名或相位否不添加预设配色<pride> 默认 pride 配色;可写一个配色参数或一个 -1~1 相位参数,不依赖“配色名和相位同时生效”
shadow阴影颜色及可选透明度否;写标签时需给颜色使用客户端默认阴影<shadow:#00000080> 使用 RRGGBBAA;普通颜色可再给 0~1 透明度,省略为 0.25;需客户端支持
!shadow无参数样式否不主动关闭阴影在支持阴影样式的客户端取消该层阴影
reset无参数控制标签否不主动清除样式<reset> 清除此前格式,不写 </reset>
newline(br)无参数插入标签否不额外插入换行<newline>;不是文字 \n,也不是 enhancedLore

pride 的可选配色名包括 pride、progress、trans、bi、pan、nb、lesbian、ace、agender、demisexual、genderqueer、genderfluid、intersex、aro、baker、philly、queer、gay、bigender、demigender。

普通的 &a、§a 颜色也可参与 mmsg,但为避免两套样式叠加,推荐整条消息统一使用标签。&{#RRGGBB}、固定三位 RGB 和中文颜色名的替换不属于此入口,使用 <#RRGGBB> 代替。没有主动开启斜体时,不会强制为整条消息添加斜体。

交互标签

字段类型必填省略行为说明
click动作名 + 对应值否;写标签时两项必填不添加点击事件<click:run_command:'/命令'>文字</click>;动作见下表
hover类型 + 对应参数否;写标签时必填不添加悬停事件show_text、show_item、show_entity 三类,范围不同
insert插入文字否;写标签时需给值不添加插入文字<insert:hello>文字</insert>,Shift 点击插入聊天输入框;不是 insertion 标签
点击动作值与限制
run_command玩家命令,包含开头 /,仍按玩家权限执行
suggest_command填入聊天输入框的文字,不立即执行
open_url完整网址,由客户端决定是否打开或提示确认
copy_to_clipboard复制文字,需要支持该事件的客户端
change_page整数书页编号,不是 Invero 面板翻页,普通聊天中不保证有作用
open_file客户端文件路径;普通聊天客户端会限制,不能读取服务端文件

show_dialog 和 custom 不能通过这里的文字参数生成可用的点击事件,不要将其他环境的这两种示例直接复制到 mmsg。

悬停类型

  • show_text:一个提示文字参数,可嵌套样式,例如 <hover:show_text:'<yellow>第一行<newline>第二行'>帮助</hover>。
  • show_item:物品标识、可选数量(省略为 1),例如 <hover:show_item:'minecraft:paper':1>查看纸</hover>。还可传旧式 SNBT,或成对的组件标识与 SNBT 值;格式与客户端版本必须匹配。这只是聊天悬停展示,不从 Invero 的物品提供方取物品,不发放物品。
  • show_entity:实体类型、UUID、可选显示名。UUID 需有效;显示名可包含 MiniMessage。它不负责自动查询当前菜单里的实体对象。

客户端文字与数据标签

这些标签生成的是客户端文本组件,不是服务端数据查询动作。没有额外的数据解析环境时,不能保证选择器、分数或 NBT 被展开成最终内容;普通菜单信息优先使用返回具体值的占位符。

字段类型必填省略行为说明
key按键标识否;写标签时需给值不插入按键文字<key:key.jump>,按客户端键位显示;没有 keybind 标签别名
translate(lang、tr)语言键及可选翻译参数否;写标签时语言键必填不插入翻译组件<lang:gui.done>;后续参数可包含引用包住的富文本
translate_or(lang_or、tr_or)语言键 + 回退文字 + 可选参数否;写标签时前两项必填不插入带回退的翻译客户端无该键时使用提供的回退文字
selector(sel)选择器及可选分隔文字否;写标签时选择器必填不插入选择器组件<selector:@a>,并非直接取得在线玩家列表
score分数持有者 + 目标名否;写标签时两项必填不插入记分板组件<score:Steve:kills>;需要对应目标和显示支持
nbt(data)来源类型 + 来源 + 路径 + 可选参数否;写标签时前三项必填不插入 NBT 文本组件类型为 block、entity、storage;可加分隔文字和 interpret;不是物品配置的 nbt 写入字段

nbt 的第二项分别为方块坐标、实体选择器或存储标识;第三项为 NBT 路径。interpret 表示按组件文字解释取到的内容,不会让客户端自动获得查询服务端数据的能力。

引号与转义

在 YAML 中写复杂消息时优先使用 action: |-,再用 Kether 的双引号或三重双引号包住整条消息;MiniMessage 参数使用另一种引号。需要原样显示标签时可写 \<green>,需要在已加引号的参数中保留同类引号或反斜杠时再做对应转义。

Invero 会先计算 {{语句}} 和 PlaceholderAPI,再解析标签。动态值中的 <、> 也可能被当成标签,不要把未经安排的动态文字直接当作可任意嵌入标签参数的安全内容;根据用途选择普通颜色文字或对内容保留所需转义。

适用范围

  • mmsg 发送的聊天消息可使用上述交互。完整的两种消息对照菜单见复合文本演示。
  • 1.17+ 物品名称和 Lore 可使用颜色、粗体、字体等非交互标签;旧版物品文字不提供相同支持。聊天悬停和点击不会让物品变成另一个可交互聊天区域。
  • 窗口标题是否保留这类富文本取决于窗口方式和标题设置,不能按聊天效果保证;常规标题优先使用颜色代码。
  • 这里只提供默认标签,不会自动提供其他插件注册的自定义标签,也不承诺未列出的新标签可用。格式不正确或未知的标签可能保留为普通文字,并非所有错误都能自动修正。

与复合文本对照

功能MiniMessage(mmsg)TabooLib(fmsg)
绿色<green>文本</green>[文本](color=a)
粗体<bold>文本</bold>[文本](b)
渐变<gradient:#aabbcc:#ddeeff>文本</gradient>[文本](gradient=#aabbcc,#ddeeff)
点击命令<click:run_command:'/命令'>文本</click>[文本](command=/命令)
悬停<hover:show_text:'提示'>文本</hover>[文本](hover=提示)

两者的标签、属性名和分隔符不能互换。进一步的标签说明可查阅 MiniMessage 格式参考,实际使用范围以上文为准。

Last updated on