杂项
本部分将收纳应用方面的补充说明,他们可能是难以归纳进以上架构或者是平日甚少使用,所以收纳于此部分
unicode-万国码
JSON支援显示Unicode,格式为:\u####
####
就是4个位的Unicode代码,具体请参考Unicode代码的网页
不过MC字库并不保证所有的Unicode都能正常显示
使用例子:
tellraw @a {"text":"\u2622"}
tellraw @a {"text":"\u2622\u269B"}
转义
这里是接着首章的例子。
比如需要输出"Hello World"
,我使用了以下命令:
tellraw @a {"text":""Hello World""}
但由于配对的问题,标识值
部分的引号和内容所需的引号配对了,系统无法正确识别命令,导致无法执行
JSON规定的转义方式为,将"
转为\"
,将\
转为\\
正确的命令为:
tellraw @a {"text":"\"Hello World\""}
这样我们便能告知系统,"Hello World"
的引号和包围值
的引号如何正确配对
然后是需要更多转义的例子
例如我们需要修改以下命令:
tellraw @a {"text":"Hello World","clickEvent":{"action":"run_command","value":"/tellraw @a {\"text\":\"Hello World\"}"}}
这是一个包含了CE的/tellraw
,点击会再次输出Hello World
如果我们需要修改成输出"Hello World"
,我们便需要在已经转义一次的引号内再加入一对引号
按照正确的转义方式,命令将修改为:
tellraw @a {"text":"Hello World","clickEvent":{"action":"run_command","value":"/tellraw @a {\"text\":\"\\\"Hello World\\\"\"}"}}
需要注意,因为第二次转义,\
也需要被转义,所以正确的写法为\\\"
而非\\"
,三次转义为\\\\\\\"
,如此类推
最后需要提醒的一点是,并非一见到引号内的引号就需要额外转义多一次
而是需要小心分辨他们是否处于同一层次
例如我要输出""Hello World""
使用:
tellraw @a {"text":"\"\\\"Hello World\\\"\""}
将会造成错误的输出
正确的写法应为:
tellraw @a {"text":"\"\"Hello World\"\""}
与资源包的配合
有些地图把部分不常用的文字改为图片(没错,Minecraft里的文字是图片来的),然后用JSON来做到在聊天栏打印合成配方的特技。
当然,这需要牺牲,就是玩家如果输入那些字符就会变为物品。不过只要用生僻字的话一般还是没有问题的。