
在接下来的所有指令教学中,我会使用不同颜色的字强调不同种类的内容,方便大家阅读与查看。凡例:
深蓝色 标题
橙色 技术类文字
深绿色 专有名词
红色 强调
粉色 区分数字内容
紫色 范例
(为了防止啰嗦,本小节正文中简称“JSON格式”)
虽说样式代码基本满足了所有输入文本的要求,但是JSON格式拥有更强大的功能。虽然JSON格式比较严格,但可以通过赋值给文字带来更多功能,同时比样式代码更浅显易懂。首先来看一下JSON字段的格式:
{"标签1":"内容1","标签2":"内容2","标签3":布尔值,……}
如果出现子标签,则需要这样写:
{"母标签":{"子标签1":"子标签1的值","子标签2":"子标签2的值",……}}
知识点:布尔值(Booleans)
指逻辑值的真(true)和假(false)。
知识点:转义
为了防止系统读取时发生混淆,在输入一些会与命令、程序冲突的文字时进行的处理,通常使用反斜线(\)加上字符进行转义。在命令中会用到的一般是换行、缩进和引号的配对。
1. 如果需要将文字换行,则在需要换行的文字前面写上\n,接下来的内容就会换到下一行。
2. 如果需要将文字缩进,则在需要缩进的文字前面写上\t,接下来的内容就会向前缩进一个中文字符的长度。
3. 有时如果出现套娃引号或者在文字中需要输入反斜杠,则需要在配对的引号前面加上适宜数量的反斜杠。举个例子:
指令/give MJ_Hamster diamond_sword{display:{Name:"{\"text\":\"耗子的六脉神剑\",\"color\":\"red\"}"}}的意思是给MJ_Hamster一把名字叫耗子的六脉神剑(没错,字是红色的)的钻石剑。但是如果不进行转义,系统会不知道哪两个引号是匹配的,从而读取失败。每一层套娃引号需要的反斜杠数为2的n次方-1,也就是说第一层不需要转义,第二层1个反斜杠,第三层3个,第四层7个……
需要注意的是,NBT标签中除了反斜线和引号不允许转义。
是不是觉得很麻烦?没错!官方也觉得很麻烦!所以在1.14之后,我们可以使用单引号(’)了!所以上面的套娃指令可以这么写:
/give MJ_Hamster diamond_sword{display:{Name:’{"text":"耗子的六脉神剑","color":"red"}’}}
这样是不是方便了很多?
JSON格式包括文本显示字段和修饰字段,文本显示字段不可以并行使用(等级高的会忽略等级低的),必须将其分割为多个JSON字段才可以使用。格式如下:
[{JSON字符串1},{JSON字符串2},{JSON字符串3},……]
JSON有以下文本显示字段,等级不同功能也不同,优先度也不同。等级从高到低如下:
1. text,显示文字信息。比如{“text”:”hi”},系统就会发送出文本“hi”。注意:在text中使用目标选择器无法正常解析。
2. translate,将输入的字段通过读取玩家正在使用的语言翻译给玩家,不过输入的字段内容需要和语言文件里的标识符一致。比如{“translate”:”item.minecraft.chorus_fruit”},系统对使用简体中文的玩家发送的文本就是“紫颂果”。(很不常用,了解就可以)
3. score,显示计分板的分数。子标签有name(读取分数的对象,可以使用目标选择器,如果这里填“*”则读取的是执行者自己)、objective(读取的计分板)和score(分数,如果存在会替换真正的分数)。
4. selector,选择器。输入目标选择器可以正常发挥作用。
5. keybind,输出玩家设置的操作的对应键位。如果一个玩家的“打开物品栏”键位设置成了E,那么{“keybind”:” key.inventory”}系统会对这名玩家发送文本“E”。 (很不常用,了解就可以)
6. nbt,通过输入NBT的路径可以显示目标的NBT的值。需要与之并行使用的字段有block(目标方块坐标)、entity(目标实体)、storage(通过/data等存储指令存储的命名空间ID)和interpret(是否将输出结果转化成JSON格式)。(很不常用,了解就可以)
除了文本显示字段,还有以下修饰字段:

修饰字段介绍
有两点特殊规则需要注意:
1. 当JSON字符串只有text一个参数时可以省略不写。比如/tellraw @a {“text”:”hi”}可以省略为/tellraw @a “hi”。
2. 样式代码只可以在文本显示字段使用。
3. JSON格式文本之间可以嵌套,嵌套的内容性质继承被嵌套的父标签。
相信通过这两节的学习,大家已经基本了解了文字的输入和特殊功能。下一节我会为大家带来有关NBT的教学,同时教大家探索实体的NBT的首创方法(笔者注:B站首发甚至可能是全国首发,敬请期待)。
下一篇:第一章 命令基础知识 1.6 探索NBT世界