第108章JAVA1.13扁平化
(个人觉得还是直接写nbt好,所以不用标签了)
在正式开始nbt前,我们需要解决一些问题:/give格式
你可能在第八章的时候已经记住了这个java版的/give格式(基岩版没问题):
/give〈目标选择器〉〈物品id〉〈数量〉〈nbt〉
你一定认为这是对的格式是不是?
但如果你在1.13版本及以上版本使用第五十八章的附魔指令:
/give@sapple1{ench:[{lvl:32767,id:sharpness}]}
(给予自己一个锋利32767级的苹果)
你就会提出一个问题:
哎这指令不对呀。
这很正常。
1.13是什么更新?水域更新。
实际上它还有一个更新:指令更新。
如你所见,1.13添加了tag,更改了execute,反正用一个词总结就是:
大翻新!
而我们的give,从java1.3版本被添加到1.12,基本没啥大更新。于是mojang就盯上了give,然后上面这条指令,如你所见,没用了。
那么问题来了:mojang在1.13版本给give更新了个啥格式呢?
比较一下你就知道了:
1.13版本以前——/give〈目标选择器〉〈物品id〉〈数量〉〈nbt〉
1.13版本以后——/give〈目标选择器〉〈物品id〉〈数量〉
你肯定很气愤:为什么把nbt删了?
其实没删,nbt还在,只不过和物品id融合在一起了。
也就是说,1.13版本以后,上面这条指令就要变成:
/give@sapple{ench:[{lvl:32767,id:sharpness}]}1
nbt跑数量前面去了。
其实这样子更合理一些,因为nbt是物品的nbt,过了好几个版本回回家也是可以理解的......
但如果你去运行这条指令,你会发现:你获得的只是一个普通的钻石剑。
为什么呢?其实mojang还对nbt进行了修改。
然后,缩写就被mojang改成了全称。
没错,ench是缩写,那么它的全称又是什么呢?
enchantments(注意大小写)
没错,ench是缩写,是enchant的缩写,但enchant还是缩写,真正的全称是enchantments(而且还要注意大小写我靠)。
其实,上面的估计不只是give,因为nbt和物品id合并,其他的比如replaceitem多多少少都会被影响到。
所以,1.13版本不要玩了,玩1.12版本吧[滑稽保命]。
nbt在1.13版本经历了一次大修改,所以接下来的章节,请各位注意自己的版本以及书上写的版本。
(1.12和1.13的指令有很大不同,所以之前书中有些内容因为没有划分版本号导致有些错误,比如r和rm在java1.12版本还在,1.13版本才被更改为distance,目前这个错误已经改正,其他地方如果有错误的话也欢迎指正)