UNPKG

@jsprismarine/raknet

Version:
42 lines (37 loc) 4.08 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const protocol_BitFlags = require('./BitFlags.cjs.cjs'); const protocol_Frame = require('./Frame.cjs.cjs'); const protocol_Packet = require('./Packet.cjs.cjs'); const DATAGRAM_HEADER_BYTE_LENGTH = 6; class FrameSet extends protocol_Packet.default { constructor(buffer) { super(protocol_BitFlags.BitFlags.VALID, buffer); } sequenceNumber; frames = []; decodePayload() { this.sequenceNumber = this.readUnsignedTriadLE(); do { this.frames.push(new protocol_Frame.default().fromBinary(this)); } while (!this.feof()); } encodePayload() { this.writeUnsignedTriadLE(this.sequenceNumber); for (const frame of this.frames) { this.write(frame.toBinary().getBuffer()); } } // TODO: for continuos flag // public addFrame(): boolean {} getByteLength() { let length = 4; for (const frame of this.frames) { length += frame.getByteLength(); } return length; } } exports.DATAGRAM_HEADER_BYTE_LENGTH = DATAGRAM_HEADER_BYTE_LENGTH; exports.default = FrameSet; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVTZXQuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL0ZyYW1lU2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaXRGbGFncyBmcm9tICcuL0JpdEZsYWdzJztcbmltcG9ydCBGcmFtZSBmcm9tICcuL0ZyYW1lJztcbmltcG9ydCBQYWNrZXQgZnJvbSAnLi9QYWNrZXQnO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2thcmNoaXZlL1Jha05ldC9ibG9iLzFhMTY5ODk1YTkwMGM5ZmM0ODQxYzU1NmUxNjUxNDE4MmI3NWZhZjgvU291cmNlL1JlbGlhYmlsaXR5TGF5ZXIuY3BwI0wxMzNcbmV4cG9ydCBjb25zdCBEQVRBR1JBTV9IRUFERVJfQllURV9MRU5HVEggPSA2O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZVNldCBleHRlbmRzIFBhY2tldCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGJ1ZmZlcj86IEJ1ZmZlcikge1xuICAgICAgICBzdXBlcihCaXRGbGFncy5WQUxJRCwgYnVmZmVyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VxdWVuY2VOdW1iZXIhOiBudW1iZXI7XG4gICAgcHVibGljIGZyYW1lczogRnJhbWVbXSA9IFtdO1xuXG4gICAgcHVibGljIGRlY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VOdW1iZXIgPSB0aGlzLnJlYWRVbnNpZ25lZFRyaWFkTEUoKTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgdGhpcy5mcmFtZXMucHVzaChuZXcgRnJhbWUoKS5mcm9tQmluYXJ5KHRoaXMpKTtcbiAgICAgICAgfSB3aGlsZSAoIXRoaXMuZmVvZigpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cml0ZVVuc2lnbmVkVHJpYWRMRSh0aGlzLnNlcXVlbmNlTnVtYmVyKTtcbiAgICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiB0aGlzLmZyYW1lcykge1xuICAgICAgICAgICAgdGhpcy53cml0ZShmcmFtZS50b0JpbmFyeSgpLmdldEJ1ZmZlcigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IGZvciBjb250aW51b3MgZmxhZ1xuICAgIC8vIHB1YmxpYyBhZGRGcmFtZSgpOiBib29sZWFuIHt9XG5cbiAgICBwdWJsaWMgZ2V0Qnl0ZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgbGVuZ3RoID0gNDsgLy8gaGVhZGVyICgxIGJ5dGUpICsgdHJpYWQgKDMgYnl0ZXMpXG4gICAgICAgIGZvciAoY29uc3QgZnJhbWUgb2YgdGhpcy5mcmFtZXMpIHtcbiAgICAgICAgICAgIGxlbmd0aCArPSBmcmFtZS5nZXRCeXRlTGVuZ3RoKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxlbmd0aDtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiUGFja2V0IiwiQml0RmxhZ3MiLCJGcmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLTyxNQUFNLDJCQUE4QixHQUFBO0FBRTNDLE1BQXFCLGlCQUFpQkEsdUJBQU8sQ0FBQTtBQUFBLEVBQ2xDLFlBQVksTUFBaUIsRUFBQTtBQUNoQyxJQUFNLEtBQUEsQ0FBQUMsMEJBQUEsQ0FBUyxPQUFPLE1BQU0sQ0FBQTtBQUFBO0FBQ2hDLEVBRU8sY0FBQTtBQUFBLEVBQ0EsU0FBa0IsRUFBQztBQUFBLEVBRW5CLGFBQXNCLEdBQUE7QUFDekIsSUFBSyxJQUFBLENBQUEsY0FBQSxHQUFpQixLQUFLLG1CQUFvQixFQUFBO0FBQy9DLElBQUcsR0FBQTtBQUNDLE1BQUEsSUFBQSxDQUFLLE9BQU8sSUFBSyxDQUFBLElBQUlDLHdCQUFRLENBQUEsVUFBQSxDQUFXLElBQUksQ0FBQyxDQUFBO0FBQUEsS0FDakQsUUFBUyxDQUFDLElBQUEsQ0FBSyxJQUFLLEVBQUE7QUFBQTtBQUN4QixFQUVPLGFBQXNCLEdBQUE7QUFDekIsSUFBSyxJQUFBLENBQUEsb0JBQUEsQ0FBcUIsS0FBSyxjQUFjLENBQUE7QUFDN0MsSUFBVyxLQUFBLE1BQUEsS0FBQSxJQUFTLEtBQUssTUFBUSxFQUFBO0FBQzdCLE1BQUEsSUFBQSxDQUFLLEtBQU0sQ0FBQSxLQUFBLENBQU0sUUFBUyxFQUFBLENBQUUsV0FBVyxDQUFBO0FBQUE7QUFDM0M7QUFDSjtBQUFBO0FBQUEsRUFLTyxhQUF3QixHQUFBO0FBQzNCLElBQUEsSUFBSSxNQUFTLEdBQUEsQ0FBQTtBQUNiLElBQVcsS0FBQSxNQUFBLEtBQUEsSUFBUyxLQUFLLE1BQVEsRUFBQTtBQUM3QixNQUFBLE1BQUEsSUFBVSxNQUFNLGFBQWMsRUFBQTtBQUFBO0FBRWxDLElBQU8sT0FBQSxNQUFBO0FBQUE7QUFFZjs7Ozs7In0=