3.0.2 • Published 4 months ago
@xmcl/nbt v3.0.2
Nbt Module
Provide function to read NBT binary format to json.
Usage
Read and Write NBT
You can simply deserialize/serialize nbt.
import { serialize, deserialize } from "@xmcl/nbt";
const fileData: Buffer;
// compressed = undefined will not perform compress algorithm
// compressed = true will use gzip algorithm
const compressed: true | "gzip" | "deflate" | undefined;
const readed: any = await deserialize(fileData, { compressed });
// The deserialize return object contain NBTPrototype property which define its nbt type
// After you do the modification on it, you can serialize it back to NBT
const buf: Buffer = await serialize(readed, { compressed });
You can use class with annotation (decorator) to serialize/deserialize the type consistently.
Suppose you are reading the servers.dat. You can have:
import { serialize, deserialize, TagType } from "@xmcl/nbt";
class ServerInfo {
@TagType(TagType.String)
icon: string = "";
@TagType(TagType.String)
ip: string = "";
@TagType(TagType.String)
name: string = "";
@TagType(TagType.Byte)
acceptTextures: number = 0;
}
class Servers {
@TagType([ServerInfo])
servers: ServerInfo[] = []
}
// read
// explict tell the function to deserialize into the type Servers
const servers = await deserialize(data, { type: Servers });
const infos: ServerInfo[] = servers.servers;
// write
const servers: Servers;
const binary = await serialize(servers);
3.0.2
4 months ago
3.0.1
1 year ago
3.0.0
1 year ago
2.0.3
4 years ago
2.0.2
4 years ago
2.0.1
4 years ago
2.0.1-alpha.1
4 years ago
2.0.1-alpha.0
4 years ago
2.0.0-alpha.0
4 years ago
1.0.3
4 years ago
1.0.2
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago
0.1.1
4 years ago
0.1.0
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago
0.0.1
5 years ago