Initial project structure

This commit is contained in:
2026-07-20 16:44:23 +02:00
commit c19fde4126
27 changed files with 4679 additions and 0 deletions
+164
View File
@@ -0,0 +1,164 @@
import * as amqp from "amqplib";
import { ProcessManager } from "./processManager";
import os from "os";
import { QueryManager } from "./queryManager";
export class StatusReporter {
constructor(
private channel: amqp.Channel,
private processManager: ProcessManager,
private queryManager: QueryManager,
private wrapperId: string
){}
start(){
console.log(
"Status Reporter gestartet"
);
setInterval(()=>{
this.sendStatus();
},10000);
}
sendStatus(){
const processes =
this.processManager.getStatus();
const queries =
this.queryManager.getStatus();
const servers =
processes.map(server => {
const query =
queries.find(
(q:any) =>
q.id === server.id
);
return {
...server,
players:
query?.players ?? 0,
maxPlayers:
query?.maxPlayers ?? 0
};
});
const status = {
type:
"wrapper.status",
wrapperId:
this.wrapperId,
servers,
ramFree:
Math.round(
os.freemem()
/
1024
/
1024
)
};
this.channel.sendToQueue(
"wrapper.register",
Buffer.from(
JSON.stringify(status)
)
);
console.log(
"Status gesendet:",
servers.length,
"Server"
);
}
}