@jsprismarine/raknet
Version:
Basic RakNet implementation written in TypeScript
41 lines (38 loc) • 4.33 kB
JavaScript
import '@jsprismarine/jsbinaryutils';
import Packet from '../Packet.es.js';
import { MessageIdentifiers } from '../MessageIdentifiers.es.js';
import 'assert';
import 'node:assert';
import '../../Constants.es.js';
import InetAddress from '../../utils/InetAddress.es.js';
import 'events';
import 'node:dgram';
class ConnectionRequestAccepted 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);
}
}
export { ConnectionRequestAccepted as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdGlvblJlcXVlc3RBY2NlcHRlZC5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Byb3RvY29sL2xvZ2luL0Nvbm5lY3Rpb25SZXF1ZXN0QWNjZXB0ZWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5ldEFkZHJlc3MgfSBmcm9tICcuLi8uLi8nO1xuaW1wb3J0IHsgTWVzc2FnZUlkZW50aWZpZXJzIH0gZnJvbSAnLi4vTWVzc2FnZUlkZW50aWZpZXJzJztcbmltcG9ydCBQYWNrZXQgZnJvbSAnLi4vUGFja2V0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29ubmVjdGlvblJlcXVlc3RBY2NlcHRlZCBleHRlbmRzIFBhY2tldCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGJ1ZmZlcj86IEJ1ZmZlcikge1xuICAgICAgICBzdXBlcihNZXNzYWdlSWRlbnRpZmllcnMuQ09OTkVDVElPTl9SRVFVRVNUX0FDQ0VQVEVELCBidWZmZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGllbnRBZGRyZXNzITogSW5ldEFkZHJlc3M7XG4gICAgcHVibGljIHJlcXVlc3RUaW1lc3RhbXAhOiBiaWdpbnQ7XG4gICAgcHVibGljIGFjY2VwdGVkVGltZXN0YW1wITogYmlnaW50O1xuXG4gICAgcHVibGljIGRlY29kZVBheWxvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xpZW50QWRkcmVzcyA9IHRoaXMucmVhZEFkZHJlc3MoKTtcbiAgICAgICAgdGhpcy5yZWFkU2hvcnQoKTsgLy8gVW5rbm93blxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMucmVhZEFkZHJlc3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVxdWVzdFRpbWVzdGFtcCA9IHRoaXMucmVhZExvbmcoKTtcbiAgICAgICAgdGhpcy5hY2NlcHRlZFRpbWVzdGFtcCA9IHRoaXMucmVhZExvbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5jb2RlUGF5bG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cml0ZUFkZHJlc3ModGhpcy5jbGllbnRBZGRyZXNzKTtcbiAgICAgICAgdGhpcy53cml0ZVNob3J0KDApOyAvLyBVbmtub3duXG4gICAgICAgIGNvbnN0IHN5c0FkZHJlc3NlcyA9IFtuZXcgSW5ldEFkZHJlc3MoJzEyNy4wLjAuMScsIDAsIDQpXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlQWRkcmVzcyhzeXNBZGRyZXNzZXNbaV0gPz8gbmV3IEluZXRBZGRyZXNzKCcwLjAuMC4wJywgMCwgNCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53cml0ZUxvbmcodGhpcy5yZXF1ZXN0VGltZXN0YW1wKTtcbiAgICAgICAgdGhpcy53cml0ZUxvbmcodGhpcy5hY2NlcHRlZFRpbWVzdGFtcCk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFJQSxNQUFxQixrQ0FBa0MsTUFBTyxDQUFBO0FBQUEsRUFDbkQsWUFBWSxNQUFpQixFQUFBO0FBQ2hDLElBQU0sS0FBQSxDQUFBLGtCQUFBLENBQW1CLDZCQUE2QixNQUFNLENBQUE7QUFBQTtBQUNoRSxFQUVPLGFBQUE7QUFBQSxFQUNBLGdCQUFBO0FBQUEsRUFDQSxpQkFBQTtBQUFBLEVBRUEsYUFBc0IsR0FBQTtBQUN6QixJQUFLLElBQUEsQ0FBQSxhQUFBLEdBQWdCLEtBQUssV0FBWSxFQUFBO0FBQ3RDLElBQUEsSUFBQSxDQUFLLFNBQVUsRUFBQTtBQUNmLElBQUEsS0FBQSxJQUFTLENBQUksR0FBQSxDQUFBLEVBQUcsQ0FBSSxHQUFBLEVBQUEsRUFBSSxDQUFLLEVBQUEsRUFBQTtBQUN6QixNQUFBLElBQUEsQ0FBSyxXQUFZLEVBQUE7QUFBQTtBQUdyQixJQUFLLElBQUEsQ0FBQSxnQkFBQSxHQUFtQixLQUFLLFFBQVMsRUFBQTtBQUN0QyxJQUFLLElBQUEsQ0FBQSxpQkFBQSxHQUFvQixLQUFLLFFBQVMsRUFBQTtBQUFBO0FBQzNDLEVBRU8sYUFBc0IsR0FBQTtBQUN6QixJQUFLLElBQUEsQ0FBQSxZQUFBLENBQWEsS0FBSyxhQUFhLENBQUE7QUFDcEMsSUFBQSxJQUFBLENBQUssV0FBVyxDQUFDLENBQUE7QUFDakIsSUFBQSxNQUFNLGVBQWUsQ0FBQyxJQUFJLFlBQVksV0FBYSxFQUFBLENBQUEsRUFBRyxDQUFDLENBQUMsQ0FBQTtBQUN4RCxJQUFBLEtBQUEsSUFBUyxDQUFJLEdBQUEsQ0FBQSxFQUFHLENBQUksR0FBQSxFQUFBLEVBQUksQ0FBSyxFQUFBLEVBQUE7QUFDekIsTUFBSyxJQUFBLENBQUEsWUFBQSxDQUFhLGFBQWEsQ0FBQyxDQUFBLElBQUssSUFBSSxXQUFZLENBQUEsU0FBQSxFQUFXLENBQUcsRUFBQSxDQUFDLENBQUMsQ0FBQTtBQUFBO0FBR3pFLElBQUssSUFBQSxDQUFBLFNBQUEsQ0FBVSxLQUFLLGdCQUFnQixDQUFBO0FBQ3BDLElBQUssSUFBQSxDQUFBLFNBQUEsQ0FBVSxLQUFLLGlCQUFpQixDQUFBO0FBQUE7QUFFN0M7Ozs7In0=