UNPKG

jsp-raknet

Version:

Basic RakNet implementation written in Javascript

44 lines (43 loc) 1.49 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DataPacket = void 0; const Packet_1 = __importDefault(require("./Packet")); const EncapsulatedPacket_1 = __importDefault(require("./EncapsulatedPacket")); const bitflags_1 = __importDefault(require("./bitflags")); class DataPacket extends Packet_1.default { constructor() { super(bitflags_1.default.Valid | 0); this.packets = []; } decode() { super.decode(); this.sequenceNumber = this.readLTriad(); while (!this.feof()) { this.packets.push(EncapsulatedPacket_1.default.fromBinary(this)); } } encode() { super.encode(); this.writeLTriad(this.sequenceNumber); for (let packet of this.packets) { this.append(packet instanceof EncapsulatedPacket_1.default ? packet.toBinary() : packet.buffer); } } length() { let length = 4; for (let packet of this.packets) { length += packet instanceof EncapsulatedPacket_1.default ? packet.getTotalLength() : packet.buffer.length; } return length; } static from(buffer) { const dataPacket = new DataPacket(); dataPacket.buffer = buffer; dataPacket.decode(); return dataPacket; } } exports.DataPacket = DataPacket;