MineJSv0.5.1

BinaryEncoder

Source: encoder.ts:19

Binary encoding helper


Constructors

new BinaryEncoder(): BinaryEncoder

Returns

BinaryEncoder


Methods

getBuffer(): Buffer<ArrayBuffer>

Returns

  • Buffer<ArrayBuffer>

wipeBuffer(): void

Returns

  • void

write( size: number, val: any, writeFunc: (buf: Buffer) => (val: any) => void, ): BinaryEncoder

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

writeBoolean(val: boolean): BinaryEncoder

Write boolean

Parameters

  • val (boolean)

Returns

writeByte(val: number): BinaryEncoder

Write 1 byte singed integer

Parameters

  • val (number)

Returns

writeDouble(val: number): BinaryEncoder

Write 8 bytes double

Parameters

  • val (number)

Returns

writeFloat(val: number): BinaryEncoder

Write 4 bytes float

Parameters

  • val (number)

Returns

writeInt(val: number): BinaryEncoder

Write 4 bytes singed integer

Parameters

  • val (number)

Returns

writeLong(val: number | bigint): BinaryEncoder

Write 8 bytes singed integer

Parameters

  • val (number | bigint)

Returns

writeLpVec3(vec3: Vec3): BinaryEncoder

Write LpVec3

Read this article for more information: https://minecraft.wiki/w/Java_Edition_protocol/Data_types#LpVec3

Parameters

Returns

writePosition(position: Vec3): BinaryEncoder

Write a Position

A position packet is a 64-bit value, split into three signed integer parts:

CODE
x: 26 MSBs
z: 26 middle bits
y: 12 LSBs

Parameters

Returns

writePrefixedArray( length: number, writeFunc: (encoder: BinaryEncoder, index: number) => Buffer<ArrayBufferLike> | BinaryEncoder, ): BinaryEncoder

Write a length-prefixed array with raw buffer

An array packet would look like this: [VarInt as length][N bytes of data]

Parameters

Returns

writeRaw(buf: Buffer): BinaryEncoder

Parameters

  • buf (Buffer)

Returns

writeRawPrefixedArray(data: Buffer, size: number): BinaryEncoder

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

writeShort(val: number): BinaryEncoder

Write 2 bytes singed integer

Parameters

  • val (number)

Returns

writeString(str: string): BinaryEncoder

Write a string

A string packet would look like this:

[VarInt as length, if not provided][N bits of data]

Parameters

  • str (string)

Returns

writeUByte(val: number): BinaryEncoder

Write 1 byte unsinged integer

Parameters

  • val (number)

Returns

writeUShort(val: number): BinaryEncoder

Write 2 bytes unsinged integer

Parameters

  • val (number)

Returns

writeVarInt(value: number): BinaryEncoder

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): BinaryEncoder

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