jsp-raknet
Version:
Basic RakNet implementation written in Javascript
44 lines (43 loc) • 1.54 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const InetAddress_1 = __importDefault(require("../utils/InetAddress"));
const Packet_1 = __importDefault(require("./Packet"));
const Identifiers = require('./Identifiers');
class NewIncomingConnection extends Packet_1.default {
constructor() {
super(Identifiers.NewIncomingConnection);
this.systemAddresses = new Array(20).fill(new InetAddress_1.default('0.0.0.0', 0, 4));
}
decode() {
super.decode();
this.address = this.readAddress();
// Do not save in memory stuff we will not use
for (let i = 0; i < 20; i++) {
const address = this.readAddress();
this.systemAddresses.push(address);
if (this.reaminingBytes === 16)
break;
}
this.requestTimestamp = this.readLong();
this.acceptedTimestamp = this.readLong();
}
encode() {
super.encode();
this.writeAddress(this.address);
for (let i = 0; i < 20; i++) {
this.writeAddress(this.systemAddresses[i]);
}
this.writeLong(this.requestTimestamp);
this.writeLong(this.acceptedTimestamp);
}
static from(buffer) {
const e = new NewIncomingConnection();
e.buffer = buffer;
e.decode();
return e;
}
}
exports.default = NewIncomingConnection;