# NBT
## 前言(?)
> NBT(二进制命名标签)格式为Minecraft中用于向文件中存储数据的一种存储格式。
> NBT格式以树形结构并配以许多标签的形式存储数据。所有的标签都有一个独立的ID和名称。
> ...
**等等!** 我们不是在说命令么?怎么跑了去编程了?~~教练我不要学这个!~~
其实NBT有两个意思:**NBT文件格式**以及**命令中的NBT格式**,两者**表达方式**是不同的,然而内里的数据是相同的。
本文只会介绍命令中的NBT的表达方式,对NBT文件格式(二进制的)有兴趣的朋友可以看 http://wiki.vg/NBT
NBT文件修改器 NBTExplorer: http://www.mcbbs.net/thread-306895-1-1.html
(部分技术可能需要使用NBT文件修改器,因此也建议下载了,基本上是标配)
> NBT文件储存了很多重要资料,如存档资料、实体资料、方块资料等。
> 通过命令中的NBT,我们能够修改并检查实体(玩家除外)、物品、方块实体的属性,也能检查玩家的部分属性。
> 看完本章,你**不会**知道NBT的完整格式,然而你会知道**最好的写法**,最不容易出现错误的写法。
## NBT简介
NBT是由标签(Tag)组成的。而每个标签都有它们的数值。
标签有不同的种类,我们可以大致分为三大类:
+ 数字类(详细分类会包括整数和浮点数,里面又可以根据不同的大小、精度再分类)
+ 字串类(没错,字串是自成一类的)
+ 集合类(包括compound及list,将会在下方详细描述)
集合类的数值为一个集合,也就是说能够储存另外的一些标签在里面
故此,NBT的结构是一个**树**结构
> (Tag_End算不算一个Tag....我觉得那比较算是Tag_Compound的格式)