Messer-Server für die Seitenwahl: 5v5/2v2, im Admin startbar, setzen sich nach der Runde selbst zurück

This commit is contained in:
mregosar committed 2026-10-29 20:33:15 +01:00
1 parent 0bfac952b6
commit c6c39b914f
15 files changed
+717 -14

No files matched your search

+6 -2
View File
@@ -11,6 +11,7 @@ import { MatchService } from './matchService.js';
import { attachRealtime } from './realtime.js';
import { createServerAdapter } from './servers/adapter.js';
import { ServerManager } from './servers/serverManager.js';
import { KnifeServers } from './servers/knifeServers.js';
import { ServerSettings } from './serverSettings.js';
/** Baut die komplette Anwendung zusammen (auch für Tests nutzbar). */
@@ -29,6 +30,7 @@ export function createApp(config, { adapter: adapterOverride, logger = console }
});
manager = new ServerManager({ db, service, adapter, config, logger });
manager.init();
const knife = new KnifeServers({ db, adapter, config, pools, logger });
service.startVetoTimer();
const app = express();
@@ -39,7 +41,7 @@ export function createApp(config, { adapter: adapterOverride, logger = console }
res.set('Referrer-Policy', 'no-referrer');
next();
});
app.use('/api', createApiRouter({ service, manager, config, pools, adapter, settings }));
app.use('/api', createApiRouter({ service, manager, config, pools, adapter, settings, knife }));
// Gebautes Frontend ausliefern (npm run build), SPA-Fallback auf index.html.
const dist = path.join(REPO_ROOT, 'client', 'dist');
@@ -52,15 +54,17 @@ export function createApp(config, { adapter: adapterOverride, logger = console }
const io = attachRealtime(server, { service, config });
return {
app, server, io, db, service, manager, adapter,
app, server, io, db, service, manager, adapter, knife,
async start() {
await manager.resume();
manager.startLoops();
knife.startLoop();
await new Promise((resolve) => server.listen(config.port, resolve));
return server.address().port;
},
async close() {
manager.stopLoops();
knife.stopLoop();
service.stopVetoTimer();
// Laufende Server-Aktionen (Start, Konfiguration) kurz abwarten, bevor die Datenbank schließt
await manager.idle(5000);