UNPKG

@jsprismarine/raknet

Version:
37 lines (36 loc) 3.63 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_protocol_Packet = require("./Packet.cjs.cjs"); const require_protocol_BitFlags = require("./BitFlags.cjs.cjs"); const require_protocol_Frame = require("./Frame.cjs.cjs"); //#region src/protocol/FrameSet.ts var DATAGRAM_HEADER_BYTE_LENGTH = 6; var FrameSet = class extends require_protocol_Packet.default { constructor(buffer) { super(require_protocol_BitFlags.BitFlags.VALID, buffer); } sequenceNumber; frames = []; decodePayload() { this.sequenceNumber = this.readUnsignedTriadLE(); do this.frames.push(new require_protocol_Frame.default().fromBinary(this)); while (!this.feof()); } encodePayload() { this.writeUnsignedTriadLE(this.sequenceNumber); for (const frame of this.frames) this.write(frame.toBinary().getBuffer()); } getByteLength() { let length = 4; for (const frame of this.frames) length += frame.getByteLength(); return length; } }; //#endregion exports.DATAGRAM_HEADER_BYTE_LENGTH = DATAGRAM_HEADER_BYTE_LENGTH; exports.default = FrameSet; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRnJhbWVTZXQuY2pzLmNqcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdG9jb2wvRnJhbWVTZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpdEZsYWdzIGZyb20gJy4vQml0RmxhZ3MnO1xuaW1wb3J0IEZyYW1lIGZyb20gJy4vRnJhbWUnO1xuaW1wb3J0IFBhY2tldCBmcm9tICcuL1BhY2tldCc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9va2FyY2hpdmUvUmFrTmV0L2Jsb2IvMWExNjk4OTVhOTAwYzlmYzQ4NDFjNTU2ZTE2NTE0MTgyYjc1ZmFmOC9Tb3VyY2UvUmVsaWFiaWxpdHlMYXllci5jcHAjTDEzM1xuZXhwb3J0IGNvbnN0IERBVEFHUkFNX0hFQURFUl9CWVRFX0xFTkdUSCA9IDY7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZyYW1lU2V0IGV4dGVuZHMgUGFja2V0IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYnVmZmVyPzogQnVmZmVyKSB7XG4gICAgICAgIHN1cGVyKEJpdEZsYWdzLlZBTElELCBidWZmZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXF1ZW5jZU51bWJlciE6IG51bWJlcjtcbiAgICBwdWJsaWMgZnJhbWVzOiBGcmFtZVtdID0gW107XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXF1ZW5jZU51bWJlciA9IHRoaXMucmVhZFVuc2lnbmVkVHJpYWRMRSgpO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICB0aGlzLmZyYW1lcy5wdXNoKG5ldyBGcmFtZSgpLmZyb21CaW5hcnkodGhpcykpO1xuICAgICAgICB9IHdoaWxlICghdGhpcy5mZW9mKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRUcmlhZExFKHRoaXMuc2VxdWVuY2VOdW1iZXIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZyYW1lIG9mIHRoaXMuZnJhbWVzKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlKGZyYW1lLnRvQmluYXJ5KCkuZ2V0QnVmZmVyKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZm9yIGNvbnRpbnVvcyBmbGFnXG4gICAgLy8gcHVibGljIGFkZEZyYW1lKCk6IGJvb2xlYW4ge31cblxuICAgIHB1YmxpYyBnZXRCeXRlTGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIGxldCBsZW5ndGggPSA0OyAvLyBoZWFkZXIgKDEgYnl0ZSkgKyB0cmlhZCAoMyBieXRlcylcbiAgICAgICAgZm9yIChjb25zdCBmcmFtZSBvZiB0aGlzLmZyYW1lcykge1xuICAgICAgICAgICAgbGVuZ3RoICs9IGZyYW1lLmdldEJ5dGVMZW5ndGgoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGVuZ3RoO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsSUFBYSw4QkFBOEI7QUFFM0MsSUFBcUIsV0FBckIsY0FBc0Msd0JBQUEsUUFBTztDQUN6QyxZQUFtQixRQUFpQjtFQUNoQyxNQUFNLDBCQUFBLFNBQVMsT0FBTyxNQUFNO0NBQ2hDO0NBRUE7Q0FDQSxTQUF5QixDQUFDO0NBRTFCLGdCQUE2QjtFQUN6QixLQUFLLGlCQUFpQixLQUFLLG9CQUFvQjtFQUMvQztHQUNJLEtBQUssT0FBTyxLQUFLLElBQUksdUJBQUEsUUFBTSxFQUFFLFdBQVcsSUFBSSxDQUFDO1NBQ3hDLENBQUMsS0FBSyxLQUFLO0NBQ3hCO0NBRUEsZ0JBQTZCO0VBQ3pCLEtBQUsscUJBQXFCLEtBQUssY0FBYztFQUM3QyxLQUFLLE1BQU0sU0FBUyxLQUFLLFFBQ3JCLEtBQUssTUFBTSxNQUFNLFNBQVMsRUFBRSxVQUFVLENBQUM7Q0FFL0M7Q0FLQSxnQkFBK0I7RUFDM0IsSUFBSSxTQUFTO0VBQ2IsS0FBSyxNQUFNLFNBQVMsS0FBSyxRQUNyQixVQUFVLE1BQU0sY0FBYztFQUVsQyxPQUFPO0NBQ1g7QUFDSiJ9