node-gamedig/protocols/fivem.js

37 lines
994 B
JavaScript

const Quake2 = require('./quake2');
class FiveM extends Quake2 {
constructor() {
super();
this.sendHeader = 'getinfo xxx';
this.responseHeader = 'infoResponse';
this.encoding = 'utf8';
}
async run(state) {
await super.run(state);
{
const raw = await this.request({
uri: 'http://' + this.options.address + ':' + this.options.port + '/info.json'
});
const json = JSON.parse(raw);
state.raw.info = json;
}
{
const raw = await this.request({
uri: 'http://' + this.options.address + ':' + this.options.port + '/players.json'
});
const json = JSON.parse(raw);
state.raw.players = json;
state.players = [];
for (const player of json) {
state.players.push({name: player.name, ping: player.ping});
}
}
}
}
module.exports = FiveM;