steam-condenser
Version:
TypeScript port of steam-condenser.
108 lines • 3.71 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var bignum_1 = __importDefault(require("bignum"));
/**
* High level class for data packets with helper-functions.
* See https://developer.valvesoftware.com/wiki/Server_Queries#Data_Types
*/
var Packet = /** @class */ (function () {
function Packet(data) {
this.bufferPointer = 0;
this.buffer = data;
}
Packet.prototype.readByte = function () {
var res = this.buffer.readInt8(this.bufferPointer);
this.bufferPointer += 1;
return res;
};
Packet.prototype.readShort = function () {
var res = this.buffer.readInt16LE(this.bufferPointer);
this.bufferPointer += 2;
return res;
};
Packet.prototype.readLong = function () {
var res = this.buffer.readInt32LE(this.bufferPointer);
this.bufferPointer += 4;
return res;
};
Packet.prototype.readFloat = function () {
var res = this.buffer.readFloatLE(this.bufferPointer);
this.bufferPointer += 4;
return res;
};
Packet.prototype.readLongLong = function () {
var a = this.buffer.readInt32LE(this.bufferPointer);
this.bufferPointer += 4;
var b = this.buffer.readInt32LE(this.bufferPointer);
this.bufferPointer += 4;
return bignum_1.default.add(a, bignum_1.default.mul(bignum_1.default.pow(2, 16), b)).toString();
};
Packet.prototype.readString = function () {
var txt = '';
while (this.buffer.readInt8(this.bufferPointer) !== 0x00) {
txt += String.fromCharCode(this.buffer.readInt8(this.bufferPointer));
this.bufferPointer += 1;
}
this.bufferPointer += 1;
return txt;
};
Packet.prototype.rest = function () {
return this.buffer.slice(this.bufferPointer);
};
Packet.prototype.writeByte = function (value) {
this.buffer.writeInt8(value, this.bufferPointer);
this.bufferPointer += 1;
return this;
};
Packet.prototype.writeShort = function (value) {
this.buffer.writeInt16LE(value, this.bufferPointer);
this.bufferPointer += 2;
return this;
};
Packet.prototype.writeLong = function (value) {
this.buffer.writeInt32LE(value, this.bufferPointer);
this.bufferPointer += 4;
return this;
};
Packet.prototype.writeFloat = function (value) {
this.buffer.writeInt32LE(value, this.bufferPointer);
this.bufferPointer += 4;
return this;
};
Packet.prototype.writeLongLong = function (value) {
this.buffer.write(value, this.bufferPointer, 8);
this.bufferPointer += 8;
return this;
};
/**
* Write string to buffer.
* @argument value Text to write, must include null(s)
* @return packet
*/
Packet.prototype.writeString = function (value) {
var input = value;
if (typeof input !== 'string') {
input = input.toString();
}
if (typeof input === 'string') {
this.buffer.write(input, this.bufferPointer);
this.bufferPointer += input.length;
}
return this;
};
Packet.prototype.resetPointer = function () {
this.bufferPointer = 0;
};
Packet.prototype.toString = function () {
return this.buffer.toString();
};
Packet.prototype.toBuffer = function () {
return Buffer.from(this.buffer);
};
return Packet;
}());
exports.default = Packet;
//# sourceMappingURL=Packet.js.map