4 个稳定版本
使用旧的 Rust 2015
1.5.0 | 2018 年 8 月 23 日 |
---|---|
1.4.2 | 2018 年 6 月 14 日 |
1.4.1 | 2017 年 8 月 20 日 |
1.4.0 | 2017 年 4 月 24 日 |
#1446 在 命令行工具 中
125KB
2K SLoC
nbted
用 Rust 编写的命令行 NBT 编辑器。它只做一件事:将 NBT 文件转换为美观的文本格式,并将美观的文本格式反向转换回 NBT。
它允许您使用 $EDITOR 编辑 NBT 文件(--edit 或直接 nbted <file>
),以及将 NBT 文件转换为美观的文本格式(nbted --print <file>
),并反向转换它们(nbted --reverse
)。例如,您可以这样做 nbted --p file.nbt > file.txt
,编辑 .txt 文件,然后执行 nbted --r file.txt > file.nbt
以应用更改。使用 nbted --help
或阅读手册以获取有关选项的详细信息。
美观的文本格式
美观的文本格式旨在为同构,它精确匹配原始 NBT 文件的布局,将标签和值简单地转换为可读的英语,并添加缩进以便于阅读。唯一的例外是字符串,它们没有长度前缀,而是用引号引用,并且字符串中的所有引号和反斜杠都用反斜杠转义。以下是一个示例,即 bigtest.nbt 文件
~/ > nbted --print bigtest.nbt
Gzip
Compound "Level"
Long "longTest" 9223372036854775807
Short "shortTest" 32767
String "stringTest" "HELLO WORLD THIS IS A TEST STRING ÅÄÖ!"
Float "floatTest" 0.49823147
Int "intTest" 2147483647
Compound "nested compound test"
Compound "ham"
String "name" "Hampus"
Float "value" 0.75
End
Compound "egg"
String "name" "Eggbert"
Float "value" 0.5
End
End
List "listTest (long)" Long 5
11
12
13
14
15
List "listTest (compound)" Compound 2
String "name" "Compound tag #0"
Long "created-on" 1264099775885
End
String "name" "Compound tag #1"
Long "created-on" 1264099775885
End
Byte "byteTest" 127
ByteArray "byteArrayTest (the first 1000 values of (n*n*255+n*7)%100, starting with n=0 (0, 62, 34, 16, 8, ...))" 1000
0
62
... 998 list elements removed to prevent the README example from being too long ...
Double "doubleTest" 0.4931287132182315
End
End
美观文本格式的第一行指定了 NBT 文件中使用的压缩方法,有效的值有 None
,Gzip
和 Zlib
。
复合中的项采用“类型 名称 值”的形式。对于原子类型,值如预期的那样,但对于非原子类型则更为复杂。复合没有值。IntArrays 和 ByteArrays 的值是它们的长度。列表的值是 Type Length
。
因为文本格式的结构与 NBT 的结构相同,所以熟悉 NBT 规范 将是一个显著的优势。
编译
在稳定的 Rust 上编译,只需
cargo build --release
确保在做出更改后运行测试。
nbted 还可以在 crates.io(cargo install nbted
)和 AUR 上安装。
依赖关系
~5.5–8MB
~142K SLoC