Provides API support for Stringified Named Binary Tag (SNBT).
npm install @bdsx/snbtThis plugin itself does not do anything, it provides an API for developers to make scripts to save and load NBT data with strings.
Formats of SNBT are referenced from https://minecraft.fandom.com/wiki/NBT_format.
#### Convert NBT into SNBT
``ts
`
/* Converts a Named Binary Tag (NBT) tag to a Stringified Named Binary Tag (SNBT) string. /
function SNBT.stringify(tag: Tag, indent?: string | number | undefined): string
`ts
`
import { SNBT } from "@bdsx/snbt";
const nbt = CompoundTag.allocateWith({
"byte": ByteTag.allocateWith(1),
"short": ShortTag.allocateWith(2),
"int": IntTag.allocateWith(3),
"long": Int64Tag.allocateWith(SNBT.Utils.makeBin64fromNumbericString("4")),
"float": FloatTag.allocateWith(5.5),
"double": DoubleTag.allocateWith(6.6),
"byteArray": ByteArrayTag.allocateWith(new Uint8Array([7, 8, 9])),
"string": StringTag.allocateWith("test"),
"list": ListTag.allocateWith([ListTag.allocateWith([]), ListTag.allocateWith([])]),
"compound": CompoundTag.allocateWith({
"weird name like this \"": StringTag.allocateWith("\"or weird value like this"),
"'or this": StringTag.allocateWith("'or this'"),
}),
"intArray": IntArrayTag.allocateWith(new Int32Array([11, 12, 13])),
});
const snbt = SNBT.stringify(nbt, 4);
`nbt
`
{
'byte': 1b,
'byteArray': [B;
7b,
8b,
9b
],
'compound': {
"'or this": "'or this'",
'weird name like this "': '"or weird value like this'
},
'double': 6.6d,
'float': 5.5f,
'int': 3,
'intArray': [I;
11,
12,
13
],
'list': [
[],
[]
],
'long': 4L,
'short': 2s,
'string': 'test'
}
`
$3
ts
`
/* Converts a Stringified Named Binary Tag (SNBT) string into a Named Binary Tag (NBT) tag. /
function SNBT.parse(text: string): Tag
`ts
{'byte':1b,'byteArray':[B;7b,8b,9b],'compound':{"'or this":"'or this'",'weird name like this "':'"or weird value like this'},'double':6.6d,'float':5.5f,'int':3,'intArray':[I;11,12,13],'list':[[],[]],'long':4L,'short':2s,'string':'test'}
import { SNBT } from "@bdsx/snbt";
const nbt = SNBT.parse();
`
`json
``
CompoundTag {
'byte' => ByteTag 1,
'byteArray' => ByteArrayTag Uint8Array [ 7, 8, 9 ],
'compound' => CompoundTag {
"'or this" => StringTag "'or this'",
'weird name like this "' => StringTag '"or weird value like this' },
'double' => DoubleTag 6.6,
'float' => FloatTag 5.5,
'int' => IntTag 3,
'intArray' => IntArrayTag Int32Array [ 11, 12, 13 ],
'list' => ListTag [ ListTag [], ListTag [] ],
'long' => LongTag '4',
'short' => ShortTag 2,
'string' => StringTag 'test' }