第一百二十四章 JSON的格式元素
我们在第十七章时讲到了JSON里可以使用color(颜色)以及bold(粗体)、 italic(斜体)、 underlined(下划线)、 strikethrough(删除线)、obfuscated(乱码)元素来对文本进行修饰。而这些,都叫做“格式”元素,因为通过它们可以修饰或更改文本的格式。
比如:
{“text“:“作者被作者击败了“,“color“:“red“}
在游戏里运行就会输出红色的“作者被作者击败了”。
而{“text“:“额“,“italic“:“true“,“color“:“yellow“}则会输出斜体黄色字:额。
这些我们在那一章都讲过了,这里就不再叙述了。
那么JSON的格式元素只有这些吗?肯定不止。
只不过再讲之前,作者还要补充两点:
上面的bold、italic、underlined、striketrough、obfuscated都是布尔值,你可以加上引号,但其实不加引号也是可以的,比如上面的{“text“:“额“,“italic“:“true“,“color“:“yellow“}就可以写成{“text“:“额“,“italic“:true,“color“:“yellow“},在命令方块里运行还是一样的。当然作者推荐布尔值还是不要加上引号,虽然现在JSON的格式并没有那么严,可能以后就严起来了。
而且,你知道吗,在1.16版本,color已经不止17种颜色了。
为什么?因为在1.16版本,你已经可以这样子了:
{“text“:“看这个颜色“,“color“:“#1F2712“}
这是什么?这是16进制颜色代码,是rgb颜色化成16进制的样子,常用于网页中。
具体的话你可以去百度百科上看看。
好的,接下来我们来看一下剩下的这些格式元素吧,其实这里不应该用“这些”的。‘
为什么?因为只剩下了一个,这个是JAVA1.16新添加的:
font
这是什么作用呢?
font的作用就是可以更改字体!
比如我们的Minecraft默认字体就是:minecraft:default,其中minecraft为命名空间。填入font:
{“text“:“字体“,“font“:“minecraft:default“}
然后运行:
字体
嗯,很普通是不是?因为我们选择的是Minecraft的默认字体。
那么font除了选择自家的字体,还可以选择其他的字体吗?
可以!你只需要找到一个带有其他字体的1.16材质包,准确来说是1.16资源包,然后装上。你可以打开这个资源包看一下它的命名空间,顺便看一下它的字体文件名,assets文件里面的第一层那些文件夹名就是命名空间,和mod文件是一样的。字体文件存储在命名空间下面的font文件夹里面,如果材质包有自带字体的话就有font文件夹,否则没有的话你就只能再去找一个。
或者是右转去问问百度贴吧的吧友,然后水贴两小时,最后啥也没获得。
哦对了,还是有获得的:
经验+3,岂不美哉?——[三国]王司徒
(呃,只写了700多,不行啊,那么再加一点料吧)
我们知道,在基岩版,你是可以使用§来更改文本的颜色和格式的,那么在JAVA版行不行呢?
当然行。
但是你无法在聊天来输入§,这是为什么?因为§在JAVA版是属于非法字符的。如果你在服务器的聊天框输入,你甚至还有可能因为非法输入而被踢出服务器,当然大多数情况下聊天栏并不会显示任何东西,因为游戏识别不出来。
而你却可以在JAVA版的书与笔中输入,只不过并不会显示,但是当你再输入一个数字或字母时,只要符合§的格式,就可以成功被游戏识别出来,你的文字颜色也会同时被改变。
而在游戏外,用的地方就很多了。你就可以在资源包、存档、mod名等地方使用§了,比如你可以修改资源包的名称,在其最开始的地方添加一个“§e”,这样子当你再次打开游戏,资源包的名称就全变成黄色的了。
而存档名就比较麻烦,你需要一个NBT修改器,如NBTExbr /lorer,然后打开要修改的存档文件夹里的level.dat文件,找到LevelName(世界名称)标签,你就可以自由的修改存档名以及样式了。
同样的逻辑也可以用于服务器,比如服务器的简介以及世界名。只不过简介的话虽然可以直接在server.br /robr /erties里修改motd属性,比如:
motd =§e Look!This a Minecraft Sever!
但是当你打开Minecraft,想要查看成果时,你就会发现服务器的简介变成了:
 Look!This a Minecraft Sever!
虽然成功变成了黄色,但是前面竟然多了一个灰色的“”!
这是为什么?因为服务器在读取配置文件时,不知道你写的这个§到底是什么鬼东西,于是只好将其先转化成:\u00C2\u00A7,即§,简介就变成了:
\u00C2\u00A7e Look!This a Minecraft Sever!
然后到了客户端时,客户端读取时发现“唉,这里竟然有一个§e”,于是就自动转化后面的字符为黄色,这就变成了你看见的:
 Look!This a Minecraft Sever!
如果你此时再次打开配置文件,你就会发现服务器自动转化简介成了:
\u00C2\u00A7e Look\!This a Minecraft Sever\!
其中两个在感叹号前面的\还好理解,这就是我们上一章说过的转义符号。而我们的:
§e
就被转换成了:
\u00C2\u00A7e
其中,这种\u00A7代码叫做Unicode,即“统一码”,从其开头的\u就可以看出来。后面的00A7则是§的统一码编号。而客户端读取的时候就会自动转换统一码。
所以,我们可以再输入的时候直接输入§的统一码,即:\u00A7,然后在后面加上其他的数字或字母,这样子就不会出现多余的Â了:
motd =\u00A7e Look\!This a Minecraft Sever\!
然后客户端就显示正常了:
Look!This a Minecraft Sever!
王五正在电脑上的QQ和他最近认识的大佬聊天。
17:25
王五:大佬,额这个分节符该怎么输入啊?
刘一(王五认识的大佬):在Windows,可以按Alt+NUMPAD0+NUMPAD1+NUMPAD6+NUMPAD7;在macOS,按下Obr /tion+6;在Linux,按下Combr /ose+S+O
刘一:就可以了。
王五:这个NUMPAD2这些是什么键?
刘一:哦,这个就是你键盘右边的那个小键盘,后面的数字对应着小键盘上相应的键,比如NUMPAD0就是按住小键盘上的0。
王五:也就是说我打出分节符只需要按住
王五:Alt+0167就可以喽
刘一:没错,就是这样的,只不过数字是按顺序按,并不需要按住数字,Alt才需要按住。
王五:哦,那我试试。
王五:§,我的天!
刘一:怎么样?
王五:OHHHHHHHHHHH!
[叭]
王五兴奋地合上了电脑,然后拿出了书与笔,嘴里念着:
“Alt加0167,然后1,接着输入蓝色,嗯,完美。”
然后他带着这本书走出了基地。
[过了一会儿]
“我的天终于回来了,天杀的,那王五竟然坑我!”张三突然出现在床旁边,“妈的,要是劳资没点水平,那就差点在末地丧命了!”
张三环顾了一下他的小房间,这时他觉得这个橡木木板做成的小房子是如此的温馨,那摆在窗台的花盆是如此的美丽,那停止运作的刷物机是如此的.......
然后他看向了手中那整个服务器唯一的龙蛋,以及他从生死的悬崖旁边获得的龙头和鞘翅,忽然间就笑了:“原来这才是王五的真正意思啊。”
“我们马上就要成为全服最牛逼的一群玩家了!OHHHHHHHHHHHH!”