跳转至

原始文本

原始文本(Raw Text)是Minecraft基岩版中用于构建结构化文本内容的JSON格式,也称为JSON文本。原始文本允许在文本中嵌入翻译键、分数值、选择器结果等动态内容,并支持文本的组合拼接。

概述

在基岩版中,许多需要显示文本的场景都支持原始文本格式,包括/tellraw命令、/titleraw命令、物品的自定义名称(通过/give命令)、告示牌文本等。原始文本通过JSON对象定义,引擎在显示时将其解析为最终的文本字符串。

格式

原始文本的根结构为一个包含rawtext数组的对象。rawtext数组中的每个元素按顺序拼接为最终文本:

{"rawtext": [{"text": "你好"}, {"text": "世界"}]}

上述示例的显示结果为“你好世界”。

文本元素类型

rawtext数组中的每个元素可以是以下类型之一:

纯文本

通过text字段直接指定文本内容:

{"text": "这是一段纯文本。"}

翻译文本

通过translate字段指定翻译键,引擎会在当前语言的语言文件中查找对应的翻译值:

{"translate": "item.apple.name"}

翻译文本可以通过with数组传入参数,替换翻译值中的%s%1%2等占位符:

{"translate": "commands.tp.success", "with": ["Steve", "100", "64", "200"]}

with数组中的元素也可以是原始文本对象,实现嵌套:

{"translate": "chat.type.text", "with": {"rawtext": [{"text": "Steve"}]}}

分数

通过score字段显示记分板中的分数值:

{"score": {"name": "Steve", "objective": "kills"}}

name字段支持使用目标选择器(如*表示文本的阅读者自身)。

选择器

通过selector字段显示目标选择器的结果(即匹配的实体名称):

{"selector": "@a"}

当多个实体匹配时,名称之间以逗号分隔。

转义字符

原始文本中的文本内容支持以下转义序列:

转义序列 含义
\n 换行
\\ 反斜杠
\" 双引号
\uXXXX Unicode字符

格式化代码

文本内容中可以使用§(分节符)后跟格式化代码来控制文本的颜色和样式。例如,§a表示绿色文本,§l表示加粗。格式化代码在§r(重置)之前持续生效。