Rawtext
简介

Rawtext用于向玩家发送和显示富文本内容,可在/tellraw或/titleraw命令中使用。
在方括号[]内,您可以列出多个自定义的文本对象。
json
{"rawtext":[]}通过在每个组件末尾添加逗号,可以组合多个组件。
文本组件
显示文本内容。文本需放在引号内。
语法:
json
{"text" :"<您的文本>"}示例:
向所有玩家发送"Hello everyone!"聊天消息:
json
/tellraw @a {"rawtext":[{"text":"Hello everyone!"}]}转义符、换行符与Unicode
- 使用
\作为转义符,可在组件内显示引号"。示例:
json
/tellraw @a {"rawtext":[{"text":"He said, \"I like apples\"..."}]}
#聊天框输出:
# 他说:"我喜欢苹果"...- 使用
\n实现换行。示例:
json
/tellraw @a {"rawtext":[{"text":"第一行\n第二行"}]}
#聊天框输出:
# 第一行
# 第二行- Unicode提供特殊编号来显示图标/表情。示例:
json
/tellraw @a {"rawtext":[{"text":"\ue100"}]}- 聊天框输出:
注意:Unicode符号仅在Minecraft中会显示为对应的图标/表情。
完整Unicode列表请参考表情与符号页面。
选择器组件
显示指定目标的名称。允许使用目标选择器参数。
语法:
json
{"selector":"<目标>"}示例:
- 在聊天框显示所有玩家名称:
json
/tellraw @a {"rawtext":[{"selector":"@a"}]}- 显示所有带有'wiki:winner'标签的玩家名称:
json
/tellraw @a {"rawtext":[{"selector":"@a [tag=wiki:winner]"}]}计分板组件
显示记分板目标的分数。
语法:
json
{"score":{"name":"<名称>", "objective":"<计分板>"}}name- 可以是选择器如@p或玩家名称- 也可使用**
***通配符显示阅读者自身分数
- 也可使用**
objective- 要显示的记分板名称
两个参数均为必填项。
示例:
- 显示最近玩家的"wiki:points"分数:
json
/tellraw @a {"rawtext" :[{"score":{"name":"@p","objective":"wiki:points"}}]}- 显示阅读者的"wiki:money"分数:
json
/titleraw @a title {"rawtext":[{"score":{"name":"*","objective":"wiki:money"}}]}本地化组件
允许创作者向用户显示本地化文本。可翻译字符串列表位于语言文件中。详见文本与翻译页面。
语法:
json
{"translate":"<字符串>"}示例:
json
/tellraw @a {"rawtext":[{"translate":"multiplayer.player.joined"}]}
#聊天框输出:
# %s加入了游戏上例输出"%s加入了游戏"。如需用名称替换%s,需额外指定with参数。该参数需使用数组[]而非花括号{}
json
/tellraw @a {"rawtext":[{"translate":"multiplayer.player.joined", "with": ["Steve"]}]}
#聊天框输出:
# Steve加入了游戏
%%s用法
translate和%s可不依赖本地化文件直接使用。例如:
json
/tellraw @a {"rawtext":[{"translate":"你好 %%s", "with":["史蒂夫"]}]}
#聊天框输出:
# 你好 史蒂夫多个%%s
可同时使用多个%%s,按顺序填充参数。
json
/tellraw @a {"rawtext":[{"translate":"%%s和%%s你们好", "with":["史蒂夫","艾利克斯"]}]}
#聊天框输出:
# 史蒂夫和艾利克斯你们好使用%%#排序
通过在%后添加数字可改变参数顺序。例如交换上例中名字位置:
json
/tellraw @a {"rawtext":[{"translate":"%%2和%%1你们好", "with":["史蒂夫","艾利克斯"]}]}
#聊天框输出:
# 艾利克斯和史蒂夫你们好也可使用rawtext组件替代数组:
json
/tellraw @a {"rawtext":[{"translate":"%%s和%%s你们好","with": {"rawtext":[{"text":"史蒂夫"},{"translate":"item.apple.name"}]}}]}
#聊天框输出:
# 史蒂夫和苹果你们好@CornyFlex提供的额外示例:
json
/tellraw @a {"rawtext":[{"translate":"角色:%%%%s","with":{"rawtext":[{"score":{"name":"*","objective":"wiki:role"}},{"text":"成员"},{"text":"版主"},{"text":"管理员"}]}}]}此结构允许根据分数向选定玩家显示不同文本。
- 聊天框输出:
- 成员
- 当玩家'wiki:role'分数为1时
- 版主
- 当分数为2时
- 管理员
- 当分数为3时
- 成员
注意:分数必须为正整数
实现原理:
- 第一个
%%因未提供参数("s"或数字)而无效,无法显示数组值 - 第二个
%%使用"s"参数,显示数组第一个槽位(即{score}) - 由于第一个
%%与{score}之间无间隔,{score}被解析为第一个%%的数字参数使其生效 - 这使得分数能动态改变要显示的数组索引




