45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.QueryManager = void 0;
|
|
const steam_server_query_1 = require("steam-server-query");
|
|
const config_1 = require("./config");
|
|
const logger_1 = require("./logger");
|
|
const logger = (0, logger_1.getLogger)("QueryManager");
|
|
class QueryManager {
|
|
constructor(processManager) {
|
|
this.processManager = processManager;
|
|
}
|
|
start() {
|
|
logger.debug("Query Manager gestartet");
|
|
setInterval(() => {
|
|
this.updateQueries();
|
|
}, config_1.WRAPPER_QUERY_INTERVAL);
|
|
}
|
|
async updateQueries() {
|
|
const servers = this.processManager.getServers();
|
|
for (const server of servers) {
|
|
try {
|
|
const info = await (0, steam_server_query_1.queryGameServerInfo)(`127.0.0.1:${server.queryPort}`);
|
|
server.players =
|
|
info.players;
|
|
server.maxPlayers =
|
|
info.maxPlayers;
|
|
logger.debug("Query erfolgreich:", server.name, `${server.players}/${server.maxPlayers}`);
|
|
}
|
|
catch (err) {
|
|
logger.warn("Query fehlgeschlagen:", server.name);
|
|
}
|
|
}
|
|
}
|
|
getStatus() {
|
|
return this.processManager
|
|
.getServers()
|
|
.map(server => ({
|
|
id: server.id,
|
|
players: server.players,
|
|
maxPlayers: server.maxPlayers
|
|
}));
|
|
}
|
|
}
|
|
exports.QueryManager = QueryManager;
|