Anti-spam check.
Do not fill this in!{{exclusive|bedrock}}
{{About|基岩版中的原始JSON文本|Java版的原始JSON文本|命令#原始JSON文本}}
{{Bedrock Edition Developer Documentation}}
'''原始JSON文本'''是一种对显示的文本添加修改的方法——其可以是改变文本颜色或是根据用户的区域设置显示其地区的文本。
{{in|be}}原始JSON文本可以作用于{{cmd|tellraw}}的内容、{{cmd|titleraw}}的标题、[[书与笔]]的文本(题目和作者除外)以及[[告示牌]]的文本。
== 原始文本格式 ==
基岩版的原始文本格式是一个支持以下元素(大部分可选)的JSON对象。
* {{nbt|compound}} 根标签。
**{{nbt|list|rawtext}}:含有所有文本对象的列表。
***{{nbt|compound}} 基础聊天对象。
****{{nbt|string|text}}:在文本中直接出现的原始文本的字符串。在[[基岩版beta 1.16.100.55|beta 1.16.100.55]]中添加了'''selector'''的组件,可以在命令中输出实体的名称,如"@a" "@p" 会被转换。\n用于换行(回车)。如果文本中有'''translate''',则'''text'''的内容则不会被显示。
**** {{nbt|string|translate}}:使用玩家所选择的语言显示的翻译识别符。此识别符与在assets文件或材质包的lang文件中所发现的识别符相同。
**** {{nbt|list|with}}:'''translate'''使用的聊天字符串参数的列表。
***** {{nbt|string}} 此参数是与当前语言中使用的参数按顺序所对应的文本(例如,列表中的第一个元素对应于'''translate'''中的“%%1”)。
**** {{nbt|compound|score}}:显示所选目标在所选记分项的当前分数。 如果所选目标或所选记分项不存在,或者所选目标在所选记分项上没有分数,则不显示任何内容。
***** {{nbt|string|name}}:选定要显示分数的目标。可以是@p之类的[[命令|目标选择器]]或假名。如果为目标选择器,则必须保证不会选择多个实体。如果为*,则会显示阅读者自己的分数(例如,/tellraw @a {"rawtext":[{"scores":{"name":"*","objective":"obj"}}]}会向每个在线玩家显示他们自己在“obj”记分项的分数)。
***** {{nbt|string|objective}}:选定要显示分数的目标所在记分项的名称。
***** {{nbt|string|value}}:可选。如果存在此值,则无论分数是多少,都将使用此值。
'''基础原始文本示例:'''
:{{cmd|tellraw @a { "rawtext" : [ { "text" : "Hello world" } ] }}}
这将向所有玩家发送一条消息“Hello world”。然而,这是对于英语而言的,请参阅[[#Translate]]操作以知道如何使用语言的本地化。
=== 追加用法 ===
原始文本接受一批文本对象。列表中的每一个对象都会添加到之前的对象中,例如:
:{{cmd|tellraw @a { "rawtext" : [ { "text" : "Hello" }, { "text" : "World" } ] }}}
用于组合两种不同语言的文本或给每个字符加上不同的颜色等。
=== Translate ===
'''translate'''允许使用者使用其他语言。如果其和'''text'''一起存在,其会覆盖'''text'''。'''translate'''提供的字符串是语言文件中字符串的名称。例如,原版Minecraft中,“commands.op.success”是当玩家使用{{cmd|op}}成功时显示的字符串。
:{{cmd|tellraw @a { "rawtext" : [ { "translate" : "commands.op.success" } ] }}}
这将向所有玩家显示“已将 %s 设为管理员”。请注意,由于在指定了'''translate'''的情况下忽略了'''text''',下面的示例将输出相同的文本:
:{{cmd|tellraw @a { "rawtext" : [ { "text":"Hello World", "translate":"commands.op.success" } ] }}}
=== With ===
在上面的'''translate'''示例中,反馈消息为“已将 %s 设为管理员”。如果要显示名称或其他文本而不是%s,还需要指定'''“with”'''。值得注意的是,'''“with”'''只与'''“translate”'''一起使用,并且还需要使用{{cd|[]}} 而不是{{cd|{}}}。例如:
: {{cmd|/tellraw @a { "rawtext" : [ { "translate" : "commands.op.success", "with" : [ "Steve" ] } ] }}}
将向所有玩家显示“已将 Steve 设为管理员”。
=== %%s ===
可以在'''“translate”'''中直接使用'''“%%s”''',而不需要使用本地文件中相应的字符串。例如:
: {{cmd|/tellraw @a { "rawtext": [ { "translate" : "Hello %%s", "with": [ "Steve" ] } ] } }}
这将向所有玩家显示“Hello Steve”。
=== 多个%%s ===
%%s可多次使用,其将会按照'''“with”'''中的顺序填写。若%%s的个数多与'''“with”'''中的个数,多出的部分显示为空。
: {{cmd|/tellraw @a { "rawtext": [ { "translate" : "Hello %%s and %%s", "with": [ "Steve", "Alex" ] } ] } }}
这将向所有玩家显示“Hello Steve and Alex”。
=== 使用%%#更改顺序 ===
%%s的顺序可以更改,方法是使用%%#,并替换#为其在'''“with”'''中的排列数字。若'''“with”'''中没有指定此位置,则显示为空。例如,要在上面的示例中交换Steve和Alex的位置,输入命令:
: {{cmd|/tellraw @a { "rawtext" : [ {"translate" : "Hello %%2 and %%1", "with": [ "Steve", "Alex"] } ] } }}
这将向所有玩家显示“Hello Alex and Steve”。
[[en:Bedrock Edition raw JSON text format]]
摘要:(请简述您所作的修改)
请留意所有对Minecraft Wiki的贡献都默认在《知识共享 署名-非商业性使用-相同方式分享 3.0》下发表(详阅Minecraft Wiki:著作权)。若您不愿意您的作品被任意编辑或者二次发布,请勿在此处提交。
您同时也承诺这些内容的作者是您自己,或得自公有领域及类似的自由来源。请勿私自提交受著作权保护的材料!
您也可以将取自Mojang(及其网站、说明、指南、艺术概念、渲染图、出版物、第三方网站组件,以及其他此类Mojang已对外公开的受保护材料)的内容上传至Minecraft Wiki。所有权力、署名与利益在合适时仍归属Mojang,也不依照服务条款被授权。
Editing help (opens in new window)