【我的世界命令教程】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"}子类:颜色绿色,不加粗 ] |
[编辑:叶子猪小秘书] 本资讯及文章仅代表发表厂商及作者观点,不代表叶子猪本身观点!



