UNPKG

@jsprismarine/raknet

Version:
71 lines (70 loc) 6.75 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const require_runtime = require("../_virtual/_rolldown/runtime.cjs.cjs"); const require_utils_InetAddress = require("../utils/InetAddress.cjs.cjs"); let _jsprismarine_jsbinaryutils = require("@jsprismarine/jsbinaryutils"); _jsprismarine_jsbinaryutils = require_runtime.__toESM(_jsprismarine_jsbinaryutils, 1); //#region src/protocol/Packet.ts /** * The base class for all packets. */ var Packet = class extends _jsprismarine_jsbinaryutils.default { id; /** * Create a new packet. */ constructor(id, buffer) { super(buffer); this.id = id; } /** * Get the packet ID. * @returns The packet's ID. */ getId() { return this.id; } decode() { this.readByte(); this.decodePayload(); } decodePayload() {} encode() { this.writeByte(this.getId()); this.encodePayload(); } encodePayload() {} readString() { return this.read(this.readShort()).toString("utf-8"); } writeString(v) { const data = Buffer.from(v, "utf-8"); this.writeUnsignedShort(data.byteLength); this.write(data); } readAddress() { const ver = this.readByte(); if (ver === 4) { const ipBytes = this.read(4); return new require_utils_InetAddress.default(`${-ipBytes[0] - 1 & 255}.${-ipBytes[1] - 1 & 255}.${-ipBytes[2] - 1 & 255}.${-ipBytes[3] - 1 & 255}`, this.readShort(), ver); } this.skip(2); const port = this.readShort(); this.skip(4); const addr = this.read(16).toString(); this.skip(4); return new require_utils_InetAddress.default(addr, port, ver); } writeAddress(address) { this.writeByte(4); const bytes = address.getAddress().split(".", 4).map((v) => Number.parseInt(v, 10)); for (const byte of bytes) this.writeByte(~byte & 255); this.writeUnsignedShort(address.getPort()); } }; //#endregion exports.default = Packet; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2V0LmNqcy5janMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3RvY29sL1BhY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmluYXJ5U3RyZWFtIGZyb20gJ0Bqc3ByaXNtYXJpbmUvanNiaW5hcnl1dGlscyc7XG5pbXBvcnQgSW5ldEFkZHJlc3MgZnJvbSAnLi4vdXRpbHMvSW5ldEFkZHJlc3MnO1xuXG4vKipcbiAqIFRoZSBiYXNlIGNsYXNzIGZvciBhbGwgcGFja2V0cy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFja2V0IGV4dGVuZHMgQmluYXJ5U3RyZWFtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlkOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgcGFja2V0LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihpZDogbnVtYmVyLCBidWZmZXI/OiBCdWZmZXIpIHtcbiAgICAgICAgc3VwZXIoYnVmZmVyKTtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgcGFja2V0IElELlxuICAgICAqIEByZXR1cm5zIFRoZSBwYWNrZXQncyBJRC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SWQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRlY29kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWFkQnl0ZSgpO1xuICAgICAgICB0aGlzLmRlY29kZVBheWxvYWQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgZW5jb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlQnl0ZSh0aGlzLmdldElkKCkpO1xuICAgICAgICB0aGlzLmVuY29kZVBheWxvYWQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgcmVhZFN0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkKHRoaXMucmVhZFNob3J0KCkpLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVN0cmluZyh2OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5mcm9tKHYsICd1dGYtOCcpO1xuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRTaG9ydChkYXRhLmJ5dGVMZW5ndGgpO1xuICAgICAgICB0aGlzLndyaXRlKGRhdGEgYXMgYW55KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZEFkZHJlc3MoKTogSW5ldEFkZHJlc3Mge1xuICAgICAgICBjb25zdCB2ZXIgPSB0aGlzLnJlYWRCeXRlKCk7XG4gICAgICAgIGlmICh2ZXIgPT09IDQpIHtcbiAgICAgICAgICAgIGNvbnN0IGlwQnl0ZXMgPSB0aGlzLnJlYWQoNCk7XG4gICAgICAgICAgICBjb25zdCBhZGRyID0gYCR7KC1pcEJ5dGVzWzBdISAtIDEpICYgMHhmZn0uJHsoLWlwQnl0ZXNbMV0hIC0gMSkgJiAweGZmfS4keygtaXBCeXRlc1syXSEgLSAxKSAmIDB4ZmZ9LiR7XG4gICAgICAgICAgICAgICAgKC1pcEJ5dGVzWzNdISAtIDEpICYgMHhmZlxuICAgICAgICAgICAgfWA7XG4gICAgICAgICAgICBjb25zdCBwb3J0ID0gdGhpcy5yZWFkU2hvcnQoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgSW5ldEFkZHJlc3MoYWRkciwgcG9ydCwgdmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2tpcCgyKTsgLy8gU2tpcCAyIGJ5dGVzXG4gICAgICAgIGNvbnN0IHBvcnQgPSB0aGlzLnJlYWRTaG9ydCgpO1xuICAgICAgICB0aGlzLnNraXAoNCk7IC8vIFNraXAgNCBieXRlc1xuICAgICAgICBjb25zdCBhZGRyID0gdGhpcy5yZWFkKDE2KS50b1N0cmluZygpO1xuICAgICAgICB0aGlzLnNraXAoNCk7IC8vIFNraXAgNCBieXRlc1xuICAgICAgICByZXR1cm4gbmV3IEluZXRBZGRyZXNzKGFkZHIsIHBvcnQsIHZlcik7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlQWRkcmVzcyhhZGRyZXNzOiBJbmV0QWRkcmVzcyk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlQnl0ZSg0KTsgLy8gSVB2NCBvbmx5XG4gICAgICAgIGNvbnN0IGJ5dGVzID0gYWRkcmVzc1xuICAgICAgICAgICAgLmdldEFkZHJlc3MoKVxuICAgICAgICAgICAgLnNwbGl0KCcuJywgNClcbiAgICAgICAgICAgIC5tYXAoKHYpID0+IE51bWJlci5wYXJzZUludCh2LCAxMCkpO1xuICAgICAgICAvLyAxMCBzaG91bGQgd29yayBwZXJmZWN0bHkgZmluZSwgYnV0IG1heWJlIGJhc2UyIGlzIGRpcmVjdGx5IGJldHRlci4uLlxuICAgICAgICAvLyBUT0RPOiBzZWUgd2hlbiB3aWxsIHJlZmFjdG9yIHRoaXMgY29kZSBzb29uXG4gICAgICAgIGZvciAoY29uc3QgYnl0ZSBvZiBieXRlcykge1xuICAgICAgICAgICAgdGhpcy53cml0ZUJ5dGUofmJ5dGUgJiAweGZmKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndyaXRlVW5zaWduZWRTaG9ydChhZGRyZXNzLmdldFBvcnQoKSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBTUEsSUFBcUIsU0FBckIsY0FBb0MsNEJBQUEsUUFBYTtDQUM3Qzs7OztDQUtBLFlBQW1CLElBQVksUUFBaUI7RUFDNUMsTUFBTSxNQUFNO0VBQ1osS0FBSyxLQUFLO0NBQ2Q7Ozs7O0NBTUEsUUFBdUI7RUFDbkIsT0FBTyxLQUFLO0NBQ2hCO0NBRUEsU0FBc0I7RUFDbEIsS0FBSyxTQUFTO0VBQ2QsS0FBSyxjQUFjO0NBQ3ZCO0NBRUEsZ0JBQWdDLENBQUM7Q0FFakMsU0FBc0I7RUFDbEIsS0FBSyxVQUFVLEtBQUssTUFBTSxDQUFDO0VBQzNCLEtBQUssY0FBYztDQUN2QjtDQUVBLGdCQUFnQyxDQUFDO0NBRWpDLGFBQTRCO0VBQ3hCLE9BQU8sS0FBSyxLQUFLLEtBQUssVUFBVSxDQUFDLEVBQUUsU0FBUyxPQUFPO0NBQ3ZEO0NBRUEsWUFBbUIsR0FBaUI7RUFDaEMsTUFBTSxPQUFPLE9BQU8sS0FBSyxHQUFHLE9BQU87RUFDbkMsS0FBSyxtQkFBbUIsS0FBSyxVQUFVO0VBQ3ZDLEtBQUssTUFBTSxJQUFXO0NBQzFCO0NBRUEsY0FBa0M7RUFDOUIsTUFBTSxNQUFNLEtBQUssU0FBUztFQUMxQixJQUFJLFFBQVEsR0FBRztHQUNYLE1BQU0sVUFBVSxLQUFLLEtBQUssQ0FBQztHQUszQixPQUFPLElBQUksMEJBQUEsUUFBWSxHQUpOLENBQUMsUUFBUSxLQUFNLElBQUssSUFBSyxHQUFJLENBQUMsUUFBUSxLQUFNLElBQUssSUFBSyxHQUFJLENBQUMsUUFBUSxLQUFNLElBQUssSUFBSyxHQUMvRixDQUFDLFFBQVEsS0FBTSxJQUFLLE9BRVosS0FBSyxVQUNXLEdBQU0sR0FBRztFQUMxQztFQUVBLEtBQUssS0FBSyxDQUFDO0VBQ1gsTUFBTSxPQUFPLEtBQUssVUFBVTtFQUM1QixLQUFLLEtBQUssQ0FBQztFQUNYLE1BQU0sT0FBTyxLQUFLLEtBQUssRUFBRSxFQUFFLFNBQVM7RUFDcEMsS0FBSyxLQUFLLENBQUM7RUFDWCxPQUFPLElBQUksMEJBQUEsUUFBWSxNQUFNLE1BQU0sR0FBRztDQUMxQztDQUVBLGFBQW9CLFNBQTRCO0VBQzVDLEtBQUssVUFBVSxDQUFDO0VBQ2hCLE1BQU0sUUFBUSxRQUNULFdBQVcsRUFDWCxNQUFNLEtBQUssQ0FBQyxFQUNaLEtBQUssTUFBTSxPQUFPLFNBQVMsR0FBRyxFQUFFLENBQUM7RUFHdEMsS0FBSyxNQUFNLFFBQVEsT0FDZixLQUFLLFVBQVUsQ0FBQyxPQUFPLEdBQUk7RUFFL0IsS0FBSyxtQkFBbUIsUUFBUSxRQUFRLENBQUM7Q0FDN0M7QUFDSiJ9