NBTEncoder
Source: encoder.ts:281
Binary encoding helper
Constructors
new NBTEncoder(
object: Record<string, CompoundField>,
): NBTEncoder
Parameters
object(Record<string, CompoundField>)
Returns
NBTEncoder
Methods
encode(): Buffer<ArrayBuffer>
Start encode
Returns
Buffer<ArrayBuffer>
getBuffer(): Buffer<ArrayBuffer>
Returns
Buffer<ArrayBuffer>
wipeBuffer(): void
Returns
void
write(
size: number,
val: any,
writeFunc: (buf: Buffer) => (val: any) => void,
): NBTEncoder
Write shortcut
Allocate size-byte buffer, use writeFunc to write the data, then concatenate to internal buffer;
Parameters
size(number)val(any)writeFunc((buf: Buffer) => (val: any) => void)
Returns
writeArray(
type: ByteArray | IntArray | LongArray,
arr: any[],
): NBTEncoder
Write a byte / int / long array
Parameters
type(ByteArray | IntArray | LongArray)arr(any[])
Returns
writeBoolean(val: boolean): NBTEncoder
Write boolean
Parameters
val(boolean)
Returns
writeByte(val: number): NBTEncoder
Write 1 byte singed integer
Parameters
val(number)
Returns
writeDouble(val: number): NBTEncoder
Write 8 bytes double
Parameters
val(number)
Returns
writeFixedSize(type: FixedSizeTag, value: any): NBTEncoder
Write a fixed-size tag to buffer
Parameters
type(FixedSizeTag)value(any)
Returns
writeFloat(val: number): NBTEncoder
Write 4 bytes float
Parameters
val(number)
Returns
writeInt(val: number): NBTEncoder
Write 4 bytes singed integer
Parameters
val(number)
Returns
writeList(type: Tag, arr: any[]): NBTEncoder
Write a list Unsafe
Parameters
type(Tag)arr(any[])
Returns
writeLong(val: number | bigint): NBTEncoder
Write 8 bytes singed integer
Parameters
val(number | bigint)
Returns
writeLpVec3(vec3: Vec3): NBTEncoder
Write LpVec3
Read this article for more information: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3
Parameters
vec3(Vec3)
Returns
writeNumber(val: number | bigint): NBTEncoder
Auto find the suitable tag and write it to the buffer
Parameters
val(number | bigint)
Returns
writeObject(obj: Record<string, any>): NBTEncoder
Write a compound
Parameters
obj(Record<string, any>)
Returns
writePosition(position: Vec3): NBTEncoder
Write a Position
A position packet is a 64-bit value, split into three signed integer parts:
x: 26 MSBs
z: 26 middle bits
y: 12 LSBsParameters
position(Vec3)
Returns
NBTEncoder— a Position
writePrefixedArray(
length: number,
writeFunc: (encoder: BinaryEncoder, index: number) => Buffer<ArrayBufferLike> | BinaryEncoder,
): NBTEncoder
Write a length-prefixed array with raw buffer
An array packet would look like this: [VarInt as length][N bytes of data]
Parameters
length(number)writeFunc((encoder: BinaryEncoder, index: number) => Buffer<ArrayBufferLike> | BinaryEncoder)
Returns
NBTEncoder— a length-prefixed array
writeRaw(buf: Buffer): NBTEncoder
Parameters
buf(Buffer)
Returns
writeRawPrefixedArray(data: Buffer, size: number): NBTEncoder
Write a length-prefixed array with raw buffer
An array packet would look like this: [VarInt as length][N bytes of data]
Parameters
data(Buffer)size(number) — size of the item, in byte
Returns
NBTEncoder— a length-prefixed array
writeShort(val: number): NBTEncoder
Write 2 bytes singed integer
Parameters
val(number)
Returns
writeString(str: string): NBTEncoder
Write a string
Parameters
str(string)
Returns
writeTag(tag: Tag): NBTEncoder
Write buffer to buffer
Parameters
tag(Tag)
Returns
writeUByte(val: number): NBTEncoder
Write 1 byte unsinged integer
Parameters
val(number)
Returns
writeUShort(val: number): NBTEncoder
Write 2 bytes unsinged integer
Parameters
val(number)
Returns
writeVarInt(value: number): NBTEncoder
Write a VarInt
A VarInt packet would look like this:
[7 bits of data][1 bit indicate if the VarInt ended here]
Parameters
value(number)
Returns
writeVarLong(value: bigint): NBTEncoder
Write a VarLong
Similar to VarInt, A VarLong packet would look like this:
[7 bits of data][1 bit indicate if the VarLong ended here]
Parameters
value(bigint)
Returns