MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

用户:MashKJo/1.12.2模组开发教程/8.NBT系统的使用:修订间差异

跳到导航 跳到搜索
→‎最后:​ // Edit via Wikiplus
(// Edit via Wikiplus)
→‎最后:​ // Edit via Wikiplus
 
(未显示同一用户的2个中间版本)
第48行: 第48行:
=== NBTTagList ===
=== NBTTagList ===
NBTTagList的使用很简单,它本质上就是对ArrayList<NBTBase>的简单封装,我们可以通过appendTag、removeTag这两个方法来完成对某个NBTTagList中保存的NBTBase对象的增添或移除。
NBTTagList的使用很简单,它本质上就是对ArrayList<NBTBase>的简单封装,我们可以通过appendTag、removeTag这两个方法来完成对某个NBTTagList中保存的NBTBase对象的增添或移除。
另外,NBTTagList类实现了Iterable<NBTBase>接口,这意味着我们可以用foreach循环来便捷地遍历一个NBTTagList。


=== 实例 ===
=== 实例 ===
第75行: 第77行:


== 最后 ==
== 最后 ==
# 对NBT对象的构造一定要发生于逻辑服务端正在运行的时候,否则逻辑客户端肯定会抛NPE并崩游戏。
# 对NBT对象的构造一定要发生于逻辑服务端正在运行的时候,否则逻辑客户端肯定会抛NPE并崩游戏。且只有ItemStack的NBT是会自动双端同步的,其他地方的NBT若想完成同步,需要手写双端通信的代码,有的基于覆写若干方法,还有的基于Forge提供的双端通信系统。
# NBTTagCompound中存储的额外信息,如果不是给Minecraft原版的代码用的,而是为你自己的Mod的逻辑用的,那么存储的额外信息所对应的NBTBase对象,所对应的键名,'''并无特别要求'''。那为什么存储附魔信息的必须是一个NBTTagList,并存于ItemStack的附加NBT中,对应的键名必须为“ench”呢?因为这是Minecraft原版读取ItemStack中附魔信息的相关代码所决定的。如果你放进NBT中的信息是给你自己的Mod用的,那键名任你取,就没有什么要求了。不过你还是最好以你的ModName为名称开个子标签,再写入你自己的数据,这是为了防止别的模组也向该NBT中添加额外数据,且键名发生冲突的情况。
# NBTTagCompound中存储的额外信息,如果不是给Minecraft原版的代码用的,而是为你自己的Mod的逻辑用的,那么存储的额外信息所对应的NBTBase对象,所对应的键名,'''并无特别要求'''。那为什么存储附魔信息的必须是一个NBTTagList,并存于ItemStack的附加NBT中,对应的键名必须为“ench”呢?因为这是Minecraft原版读取ItemStack中附魔信息的相关代码所决定的。如果你放进NBT中的信息是给你自己的Mod用的,那键名任你取,就没有什么要求了。不过你还是最好以你的ModName为名称开个子标签,再写入你自己的数据,这是为了防止别的模组也向该NBT中添加额外数据,且键名发生冲突的情况。
== 注释与外部链接 ==
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,417

个编辑

我们提供服务需要使用Cookie。您使用我们的服务,即表示您同意我们使用Cookie。

导航菜单