我们都知道在JSON里面可以使用text来输入文本。
而且我们也知道在基岩版显示文本的地方是可以写目标选择器的。
那么有没有什么办法能不能帮助我们在JAVA版在JSON使用目标选择器呢?
有!
这就是:selector元素。
selector元素属于内容类别。内容元素能有什么作用?在Minecraft的JSON中,一个JSON要生效,必须要每个对象都至少有一个内容元素,比如text就是内容元素。
那么selector该怎么用?
很简单,比如:
/tellraw @a {“selector“:“@p“}
这样子写,然后游戏就会根据元素内的内容来转义,分析这个目标选择器,最终得出来这个目标选择器的意思:显示最近的玩家。
好了,然后游戏就要找到距离执行地点最近的玩家,然后就向全服广播:
当然,就算你不填目标选择器也可以,因为游戏仍然把它认为是目标选择器,比如:
/tellraw @a {“selector“:“我靠“}
然后游戏就会寻找名为“我靠”的玩家,但实际上并没有这个玩家。
最后游戏找不到,干脆就不干了,直接给你显示一个空空如也的消息。
但如果真有叫做“我靠”的玩家,那么游戏就会正常显示这个名叫“我靠”的玩家的名字。
对了,还会显示前后缀。
当然,selector还不高级,接下来我们来更高级一些:
score(内容类别)——记分板元素
这个score可以显示玩家的指定计分项分数,让你的服务器更加的高级。
score也很简单,其格式大概是这个样子的:
{“score“:{“name“:“目标选择器“,“objective“:“计分项名“}}
(嘿作者,你不是说大括号里不能套大括号吗?怎么现在就出现了?)
(额,凡事都有例外嘛)
我相信各位都看得懂这个格式吧,现在我们举个例子:
/tellraw @a {“score“:{“name“:“@s“,“objective“:“绿宝石“}}
这样子,执行后在场的所有玩家都会知道自己有多少绿宝石了。
然鹅,name不光可以填目标选择器,还可以填*号!
这个*号是什么作用呢?
@s类似,也是显示自己的分数,只不过为了准确,还要在显示前面加上“读者”二字。