Minecraft(我的世界)中文论坛

标题: Bukkit插件开发--NBT在不同版本的区别

作者: William_Shi    时间: 2020-4-16 13:40
标题: Bukkit插件开发--NBT在不同版本的区别
本帖最后由 William_Shi 于 2020-4-16 13:41 编辑


可以看到,1.15.2-R0.1-SNAPSHOT的核心当中
NBTTag都为private的访问控制
所有的NBT数据包都无法像莫老的教程那样
https://www.mcbbs.net/thread-697478-1-1.html
直接new出一个NBT基础数据包
换句话说,如果你想要自己添加一个NBT数据键,并且设置对应的NBT数据包
你需要这样(以NBT字符串数据包为例)

也就是说调用其静态方法a(nms经过了混淆)
让a这个方法来new 一个NBT基础数据包
其实是提升了NBT的安全性(加上了一定的参数检查,防止一定的不合适参数)
当然也可以通过全程反射进行操作


作者: 瘟疫威胁全世界    时间: 2020-4-16 15:21
NMS还是有点麻烦,我选择§t§e§s§t,多方便又不用考虑兼容性
作者: Delamer    时间: 2020-4-20 16:14
compound.set("test",NBTTagString.a(""));

打扰一下,请问大佬,例子中这个compound对象该如何取得?
在莫老的教程中:
NBTTagCompound compound = (nmsItem.hasTag()) ? nmsItem.getTag()
: new NBTTagCompound();

这样创建对象时似乎并不能直接使用,是因为缺了什么关键步骤与漏导的包吗