您的位置:>我的世界>资讯资讯>

【我的世界命令教程】10 JSON文本组件详解-上

开始吐槽

*所有内容均为原创内容,未经允许禁止转载或摘编

先对上期 评论区中对格式有异议的 评论解释一下。

格式一: [{"键名":"键值","键名": "键值"...} ,{...}...] (我上期写的)

格式二: ["",{"键名":"键值","键名": "键值"...} ,{...}...]

两个格式都没有错,具体原因见下文中的 继承 。但建议使用第二个格式 可以避免很多问题。

up在上期和这几期 的内容分布有问题,造成的麻烦实在抱歉! 求原谅 o(╥﹏╥)o

JSON

JSON是一种数据格式 Minecraft(电脑版)使用它来储存多种数据:

JSON文本组件(/tellraw,/title,书,告示牌)。

描述资源包的 pack.mcmeta 文件。

成就和统计(例如.minecraft/saves/*/data/stats/*.json)。

启动器资料(例如.minecraft/launcher_profiles.json)。

在这里只讲JSON文本组件 ,后面的是码农的工作了

这期的例子都是用的:/ tellraw <玩家> <原始JSON消息> 。

它可以 发送一条JSON格式的消息。

JSON格式如何写见上期。

JSON文本组件

“文本组件”是Minecraft的文本处理系统,其中要解析的文本存储为JSON格式。 它具有基本的文本样式,如颜色和格式(粗体,斜体,下划线),以及通过clickEvents和hoverEvents的高级选项,例如运行命令当鼠标悬停在文本上时单击或显示更多数据。

上下两期将介绍如何使用各种文本组件,但不是所有的组件都可用于所有位置。

Unicode和转义序列

文本组件支持使用Java的转义序列,且支持Unicode。但并不是所有的转义序列都被支持,并不是所有的unicode字符都可以被看到。

例如,产生 § 符号,即unicode字符 00A7 :/tellraw @a {"text":"\ u00A7"}

\ u0000至\ uFFFF 的Unicode字符查询网站见末尾。

转义序列是用于区分编程语言和文本的。

例如我想显示:这是"bilibili" 。输入 /tellraw @a {"text":"这是"bilibili""},电脑就会分不清楚双引号了。为了区别特殊字符,应在需要显示的特殊字符前加 \ 。

所以可以这样输入:/tellraw @a {"text":"这是\"bilibili\""} 。

如何显示特殊字符

其他还有 \n ;是 “换行”字符,将文本推送到下一行,相当于回车。

例如:/tellraw @a {"text":"这是\n\"bilibili\""} 。

如何换行

文本样式

颜色

从一组预定颜色中进行选择。默认为“白色”。颜色及其ID的列表:

颜色ID表

例如,文本的颜色为“红色”: /tellraw @a {"text":"文本","color":"red"}

可以使用"reset"将颜色重置为默认值:/tellraw @a [{"text":"Parent","color":"red"},{"text":"Child1","color":"reset"}]

加粗

增加文字厚度。默认为“false”。

/tellraw @a {"text":"Hello","bold":true}

斜体

强调文本。 默认值为“false”。

/tellraw @a {"text":"Hello","italic":true}

下划线

强调文本。 默认值为“false”。

/tellraw @a {"text":"Hello","underlined":true}

删除线

一个加删除线的文本。 默认值为“false”。

/tellraw @a {"text":"Hello","strikethrough":true}

混淆

使文本循环随机字母默认值为“false”。例如:

/tellraw @a {"text":"Hello","obfuscated":true}

继承

继承是面向对象 软件技术当中的一个概念。 使得子类具有父类的属性和方法除非重新声明。说的貌似太专业了,举例说明吧。

当一条命令只有一个对象时,它就没有子类和父类之分了(1个对象就是1个样式):

/tellraw @a {"text":"Parent"}

当有多个对象时,第一条记录将是父级,而其他所有记录都是子级:

/tellraw @a ["Parent","Child1","Child2"]

再细化讲就是 当Parent被设为红色后,虽然之后的Child没有设置颜色,但它仍会显示红色。因为它继承了第一条记录的格式:

/tellraw @a [{"text":"Parent","color":"red"},{"text":"Child"}]

所以可以输入一个空字符串跳过第一条记录以避免不必要的继承:

/tellraw @a ["",{"text":"Child"}]

若子类不需要继承某些父类的格式,重新声明那个格式即可覆盖:

/tellraw @a [{"text":"Parent","italic":true,"color":"red"},{"text":"Child1","color":"green"}]

Child1继承了Parent的斜体设置,但颜色设置被覆盖更改了

子类之间并不相互继承。

extra 标签就是一个专用继承的标签。标签内的所有内容都是子类:

/tellraw @a {"text":"Parent ","extra":["Child1 ","Child2"]}

extra中的格式同样是JSON格式

最后利用这期学的写了个例子:/tellraw @a [{"text":"欢迎来到暗界\n","color":"black","bold":true},{"text":"哔哩哔哩巴拉巴拉介绍服务器什么的\n","color":"reset"},{"text":"\[公告\]","color":"blue"},{"text":"请不要乱拆乱建他人的房屋,做个好公民~","color":"green","bold":"false"}]

输入命令,执行命令

注:内容参考谷歌和有道翻译。

~~~~~~~神奇的分割线~~~~~~~

注:有想知道的代码或者好的想法可以在评论区写出来,我会考虑优先出教程哒^_^ 看到有不懂的地方欢迎在评论区提问 ~~

我学习的网站(部分内容出处):https://www.minecraftforum.net/topic/1975697-174-tellraw-formatting-examples-updated-to-14w02c (内容很好,可惜没有翻译)

Unicode字符查询网站: http://unicode.org/charts/ (网站是英文的,up用的Google浏览器自带的翻译看的)

谢谢大家的支持!

各位读者大大们觉得喜欢就点一下推荐,也可以关注我看更多Minecraft中的命令 ^_^~~~

这期都是我的心血啊,求点赞!求关注啦!(〃'▽'〃)

末尾把例子打开方便理解:

/tellraw @a [

{"text":"欢迎来到暗界\n","color":"black","bold":true},父类:颜色黑色,加粗

{"text":"哔哩哔哩巴拉巴拉介绍服务器什么的\n","color":"reset"},子类:颜色重置, 继承加粗

{"text":"\[公告\]","color":"blue"},子类:颜色蓝色, 继承加粗

{"text":"请不要乱拆乱建他人的房屋,做个好公民~","color":"green","bold":"false"}子类:颜色绿色,不加粗

]

随便看看