UNPKG

teeworlds

Version:

Library for (ingame) teeworlds bots.

46 lines (44 loc) 976 B
export class MsgPacker { result: Buffer; sys: boolean; flag: number; constructor(msg: number, sys: boolean, flag: number) { this.result = Buffer.from([2*msg + (sys ? 1 : 0)]); this.sys = sys; this.flag = flag; } AddString(str: string) { this.result = Buffer.concat([this.result, Buffer.from(str), Buffer.from([0x00])]) } AddBuffer(buffer: Buffer) { this.result = Buffer.concat([this.result, buffer]) } AddInt(i: number) { var result = [] var pDst = (i >> 25) & 0x40 var i = i ^(i>>31) pDst |= i & 0x3f i >>= 6 if (i) { pDst |= 0x80 result.push(pDst) while (true) { pDst++; pDst = i & (0x7f) i>>= 7; pDst |= (Number(i != 0)) << 7 result.push(pDst) if (!i) break; } } else result.push(pDst) this.result = Buffer.concat([this.result, Buffer.from(result)]) } get size() { return this.result.byteLength; } get buffer() { return this.result } }