11# 📒 NbtCompound - 标签类型
22
3- 一个` NbtCompound ` 代表一个完整的标签,里面储存了一系列键值对,类似于对象 / 表这样的数据结构。
4- 通过` NbtCompound ` 对象的接口,才可以进行 NBT 标签所独有的一些操作。
3+ 一个 ` NbtCompound ` 代表一个完整的标签,里面储存了一系列键值对,类似于对象 / 表这样的数据结构。
4+ 通过 ` NbtCompound ` 对象的接口,才可以进行 NBT 标签所独有的一些操作。
55
66### 获取一个 NBT 标签对象
77
1717[ Lua] ` NbtCompound([data]) `
1818
1919- 参数:
20- - data: Object<string, NBT对象 >(可选参数)
21- 传入一个NBT对象构成的对象 。对象中允许包含其他数组 / 对象结构,但内容必须都为NBT对象
22- - 返回值:生成的NBT对象
20+ - data: Object<string, NBT Object >(可选参数)
21+ 传入一个 NBT 对象构成的对象 。对象中允许包含其他数组 / 对象结构,但内容必须都为 NBT 对象
22+ - 返回值:生成的 NBT 对象
2323- 返回值类型:` NbtList `
2424 - 如果创建失败,将抛出异常
2525
@@ -50,18 +50,18 @@ local nbt = NbtCompound({
5050
5151
5252
53- #### 从 SNBT 字符串生成 NBT 标签对象
53+ #### 从 SNBT 字符串生成 NBT 标签对象
5454
5555` NBT.parseSNBT(snbt) `
5656
5757- 参数:
58- - snbt : ` String `
59- 你要解析的SNBT字符串
60- - 返回值:生成的NBT对象
58+ - snbt: ` String `
59+ 你要解析的 SNBT 字符串
60+ - 返回值:生成的 NBT 对象
6161- 返回值类型:` NbtCompound `
6262 - 如返回值为 ` Null ` 则表示解析失败
6363
64- > SNBT字符串中必须包含一个完整的Compound
64+ > SNBT 字符串中必须包含一个完整的 Compound
6565
6666
6767
@@ -70,15 +70,15 @@ local nbt = NbtCompound({
7070` NBT.parseBinaryNBT(nbt) `
7171
7272- 参数:
73- - nbt : ` ByteBuffer `
73+ - nbt: ` ByteBuffer `
7474 你要解析的二进制 NBT 数据
75- - 返回值:生成的NBT对象
75+ - 返回值:生成的 NBT 对象
7676- 返回值类型:` NbtCompound `
7777 - 如返回值为 ` Null ` 则表示解析失败
7878
79- > 二进制 NBT 数据中必须包含一个完整的Compound
79+ > 二进制 NBT 数据中必须包含一个完整的 Compound
8080
81- 对于某个一个` NbtCompound ` 类型的对象` comp ` ,有如下这些接口
81+ 对于某个一个 ` NbtCompound ` 类型的对象 ` comp ` ,有如下这些接口
8282
8383#### 获取所有的键
8484
@@ -94,7 +94,7 @@ local nbt = NbtCompound({
9494` comp.getTypeOf(key) `
9595
9696- 参数:
97- - key: ` String `
97+ - key: ` String `
9898 要查询的键名
9999- 返回值:对应的值的数据类型
100100- 返回值类型:` Enum `
@@ -111,12 +111,12 @@ local nbt = NbtCompound({
111111` comp.setTag(key,tag) `
112112
113113- 参数:
114- - key: ` String `
114+ - key: ` String `
115115 要操作的键名
116- - tag: ` NBT对象 `
116+ - tag: ` NBT Object `
117117 要写入的 NBT 对象(它承载着具体的NBT数据)
118118 写入数据类型必须和键对应的值储存的数据类型一致,键名可以不存在
119- - 返回值:CompoundTag自身
119+ - 返回值:CompoundTag 自身
120120- 返回值类型:` NBTCompound `
121121
122122
@@ -126,11 +126,11 @@ local nbt = NbtCompound({
126126` comp.getTag(key) `
127127
128128- 参数:
129- - key: ` String `
129+ - key: ` String `
130130 要操作的键名
131- - 返回值:键对应的NBT对象
132- - 返回值类型: ` NBT对象 `
133- - 如果要读取的NBT不存在 ,将返回` Null `
131+ - 返回值:键对应的 NBT 对象
132+ - 返回值类型: ` NBT Object `
133+ - 如果要读取的 NBT 不存在 ,将返回` Null `
134134
135135
136136
@@ -139,9 +139,9 @@ local nbt = NbtCompound({
139139` comp.removeTag(key) `
140140
141141- 参数:
142- - key: ` String `
142+ - key: ` String `
143143 要操作的键名。键名必须已经存在
144- - 返回值:处理完毕的NBT对象 (便于连锁进行其他操作)
144+ - 返回值:处理完毕的 NBT 对象 (便于连锁进行其他操作)
145145- 返回值类型:` NbtCompound `
146146
147147
@@ -164,12 +164,12 @@ local nbt = NbtCompound({
164164` comp.setString(key,data) `
165165
166166- 参数:
167- - key: ` String `
167+ - key: ` String `
168168 要操作的键名
169- - data: ` 上述类型 `
169+ - data: ` 上述类型 `
170170 要写入的具体数据
171171 写入数据类型必须和键对应的值储存的数据类型一致,键名可以不存在
172- - 返回值:写入完毕的NBT对象 (便于连锁进行其他操作)
172+ - 返回值:写入完毕的 NBT 对象 (便于连锁进行其他操作)
173173- 返回值类型:` NbtCompound `
174174
175175
@@ -179,51 +179,51 @@ local nbt = NbtCompound({
179179` comp.getData(key) `
180180
181181- 参数:
182- - key: ` String `
182+ - key: ` String `
183183 要操作的键名
184184- 返回值:键对应的值的具体数据
185185- 返回值类型:` 任意类型 ` ,以储存的数据类型为准
186- - 如果目标位置储存的是` List ` 类型 NBT,将返回一个` NbtList ` 对象;如果目标位置储存的是` Compound ` 类型 NBT,将返回一个` NbtCompound ` 对象
187- - 如果要读取的NBT不存在 ,将返回` Null `
186+ - 如果目标位置储存的是 ` List ` 类型 NBT,将返回一个 ` NbtList ` 对象;如果目标位置储存的是 ` Compound ` 类型 NBT,将返回一个 ` NbtCompound ` 对象
187+ - 如果要读取的 NBT 不存在 ,将返回 ` Null `
188188
189189
190190
191- #### 将 NBT 标签对象 转换为Object
191+ #### 将 NBT 标签对象转换为 Object
192192
193193` comp.toObject() `
194194
195195- 返回值:对应的对象 / 表
196196- 返回值类型:` Object `
197197
198- 将Compound的内容转换为脚本引擎对象,把数据项都转换为脚本引擎数据类型储存于对象的对应key中 ,方便读取和处理
199- 如果Compound某一项储存的是 ` List ` 或者 ` Compound ` 类型的 NBT,将在对应位置递归展开为` Array ` 或 ` Object `
198+ 将 Compound 的内容转换为脚本引擎对象,把数据项都转换为脚本引擎数据类型储存于对象的对应 key 中 ,方便读取和处理
199+ 如果 Compound 某一项储存的是 ` List ` 或者 ` Compound ` 类型的 NBT,将在对应位置递归展开为 ` Array ` 或 ` Object `
200200
201201
202202
203- #### 将 NBT 标签对象 序列化为SNBT
203+ #### 将 NBT 标签对象序列化为 SNBT
204204` nbt.toSNBT([space]) `
205205
206206- 参数
207207 - space : ` Integer `
208208 (可选参数)如果要格式化输出的字符串,则传入此参数
209209 代表每个缩进的空格数量,这样生成的字符串更适合人阅读
210- 此参数默认为-1,即不对输出字符串进行格式化
211- - 返回值:对应的SNBT字符串
210+ 此参数默认为 -1,即不对输出字符串进行格式化
211+ - 返回值:对应的 SNBT 字符串
212212- 返回值类型:` String `
213213
214- > 除了普通的二进制NBT之外,另一种玩家更熟悉的NBT是纯文本形式的 ,通常在[ 命令] ( https://zh.minecraft.wiki/w/命令 ) 里使用。这种格式常被称为** SNBT** (** 字符串化的二进制命名标签** ,** S** tringified ** NBT** )
214+ > 除了普通的二进制 NBT 之外,另一种玩家更熟悉的 NBT 是纯文本形式的 ,通常在[ 命令] ( https://zh.minecraft.wiki/w/命令 ) 里使用。这种格式常被称为** SNBT** (** 字符串化的二进制命名标签** ,** S** tringified ** NBT** )
215215>
216216> --- Minecraft Wiki
217217
218218
219219
220- #### 将 NBT 标签对象 序列化为二进制NBT
220+ #### 将 NBT 标签对象 序列化为二进制 NBT
221221
222222` comp.toBinaryNBT() `
223223
224- - 返回值:对应的二进制NBT数据
224+ - 返回值:对应的二进制 NBT 数据
225225- 返回值类型:` ByteBuffer `
226- > 只有完整的顶层Compound标签可以被转换为二进制NBT
226+ > 只有完整的顶层Compound标签可以被转换为二进制 NBT
227227
228228
229229
@@ -233,5 +233,5 @@ local nbt = NbtCompound({
233233- 返回值:是否成功清理
234234- 返回值类型:` Boolean `
235235
236- 注意,只有根Compound标签可以被销毁 ,而且,请谨慎使用此函数,不当的使用将会造成服务器崩溃
237- 合适的销毁有助于解决内存占用问题。在销毁完后,请千万不要再使用此NBT对象和他的所有子对象
236+ 注意,只有根 Compound 标签可以被销毁 ,而且,请谨慎使用此函数,不当的使用将会造成服务器崩溃
237+ 合适的销毁有助于解决内存占用问题。在销毁完后,请千万不要再使用此 NBT 对象和他的所有子对象
0 commit comments