Minecraft最新最全指令教学7 JSON格式(PC1.15.2)
MJ_Hamster
编辑于 2020年03月30日 00:12
收录于文集
共22篇

耗子的指令课堂(7)

引导

在接下来的所有指令教学中,我会使用不同颜色的字强调不同种类的内容,方便大家阅读与查看。凡例:

深蓝色  标题

橙色      技术类文字

深绿色  专有名词

红色      强调

粉色      区分数字内容

紫色      范例

第一章  命令基础知识

1.5  样式代码与JSON格式

1.5.2  原始JSON文本格式

(为了防止啰嗦,本小节正文中简称“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世界