@jsprismarine/raknet
Version:
Basic RakNet implementation written in TypeScript
31 lines (30 loc) • 3.66 kB
JavaScript
import InetAddress from "../../utils/InetAddress.es.js";
import Packet from "../Packet.es.js";
import { MessageIdentifiers } from "../MessageIdentifiers.es.js";
//#region src/protocol/login/ConnectionRequestAccepted.ts
var ConnectionRequestAccepted = class extends Packet {
constructor(buffer) {
super(MessageIdentifiers.CONNECTION_REQUEST_ACCEPTED, buffer);
}
clientAddress;
requestTimestamp;
acceptedTimestamp;
decodePayload() {
this.clientAddress = this.readAddress();
this.readShort();
for (let i = 0; i < 20; i++) this.readAddress();
this.requestTimestamp = this.readLong();
this.acceptedTimestamp = this.readLong();
}
encodePayload() {
this.writeAddress(this.clientAddress);
this.writeShort(0);
const sysAddresses = [new InetAddress("127.0.0.1", 0, 4)];
for (let i = 0; i < 20; i++) this.writeAddress(sysAddresses[i] ?? new InetAddress("0.0.0.0", 0, 4));
this.writeLong(this.requestTimestamp);
this.writeLong(this.acceptedTimestamp);
}
};
//#endregion
export { ConnectionRequestAccepted as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdGlvblJlcXVlc3RBY2NlcHRlZC5lcy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvdG9jb2wvbG9naW4vQ29ubmVjdGlvblJlcXVlc3RBY2NlcHRlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmV0QWRkcmVzcyB9IGZyb20gJy4uLy4uLyc7XG5pbXBvcnQgeyBNZXNzYWdlSWRlbnRpZmllcnMgfSBmcm9tICcuLi9NZXNzYWdlSWRlbnRpZmllcnMnO1xuaW1wb3J0IFBhY2tldCBmcm9tICcuLi9QYWNrZXQnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25uZWN0aW9uUmVxdWVzdEFjY2VwdGVkIGV4dGVuZHMgUGFja2V0IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoYnVmZmVyPzogQnVmZmVyKSB7XG4gICAgICAgIHN1cGVyKE1lc3NhZ2VJZGVudGlmaWVycy5DT05ORUNUSU9OX1JFUVVFU1RfQUNDRVBURUQsIGJ1ZmZlcik7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWVudEFkZHJlc3MhOiBJbmV0QWRkcmVzcztcbiAgICBwdWJsaWMgcmVxdWVzdFRpbWVzdGFtcCE6IGJpZ2ludDtcbiAgICBwdWJsaWMgYWNjZXB0ZWRUaW1lc3RhbXAhOiBiaWdpbnQ7XG5cbiAgICBwdWJsaWMgZGVjb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGllbnRBZGRyZXNzID0gdGhpcy5yZWFkQWRkcmVzcygpO1xuICAgICAgICB0aGlzLnJlYWRTaG9ydCgpOyAvLyBVbmtub3duXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMjA7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5yZWFkQWRkcmVzcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZXF1ZXN0VGltZXN0YW1wID0gdGhpcy5yZWFkTG9uZygpO1xuICAgICAgICB0aGlzLmFjY2VwdGVkVGltZXN0YW1wID0gdGhpcy5yZWFkTG9uZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbmNvZGVQYXlsb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyaXRlQWRkcmVzcyh0aGlzLmNsaWVudEFkZHJlc3MpO1xuICAgICAgICB0aGlzLndyaXRlU2hvcnQoMCk7IC8vIFVua25vd25cbiAgICAgICAgY29uc3Qgc3lzQWRkcmVzc2VzID0gW25ldyBJbmV0QWRkcmVzcygnMTI3LjAuMC4xJywgMCwgNCldO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVBZGRyZXNzKHN5c0FkZHJlc3Nlc1tpXSA/PyBuZXcgSW5ldEFkZHJlc3MoJzAuMC4wLjAnLCAwLCA0KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndyaXRlTG9uZyh0aGlzLnJlcXVlc3RUaW1lc3RhbXApO1xuICAgICAgICB0aGlzLndyaXRlTG9uZyh0aGlzLmFjY2VwdGVkVGltZXN0YW1wKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxJQUFxQiw0QkFBckIsY0FBdUQsT0FBTztDQUMxRCxZQUFtQixRQUFpQjtFQUNoQyxNQUFNLG1CQUFtQiw2QkFBNkIsTUFBTTtDQUNoRTtDQUVBO0NBQ0E7Q0FDQTtDQUVBLGdCQUE2QjtFQUN6QixLQUFLLGdCQUFnQixLQUFLLFlBQVk7RUFDdEMsS0FBSyxVQUFVO0VBQ2YsS0FBSyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksS0FDcEIsS0FBSyxZQUFZO0VBR3JCLEtBQUssbUJBQW1CLEtBQUssU0FBUztFQUN0QyxLQUFLLG9CQUFvQixLQUFLLFNBQVM7Q0FDM0M7Q0FFQSxnQkFBNkI7RUFDekIsS0FBSyxhQUFhLEtBQUssYUFBYTtFQUNwQyxLQUFLLFdBQVcsQ0FBQztFQUNqQixNQUFNLGVBQWUsQ0FBQyxJQUFJLFlBQVksYUFBYSxHQUFHLENBQUMsQ0FBQztFQUN4RCxLQUFLLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxLQUNwQixLQUFLLGFBQWEsYUFBYSxNQUFNLElBQUksWUFBWSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0VBR3pFLEtBQUssVUFBVSxLQUFLLGdCQUFnQjtFQUNwQyxLQUFLLFVBQVUsS0FBSyxpQkFBaUI7Q0FDekM7QUFDSiJ9