Add Space Engineers server support
All checks were successful
Deploy GSM / deploy (push) Successful in 34s

Integrates Space Engineers dedicated server (docker+wine on 192.168.2.78) into GSM:
- config.json entry with docker runtime and log-based player detection
- getSpaceEngineersPlayers() parses docker logs for connect/disconnect events
- Extends type-check sites in rcon, autoshutdown, discordBot, servers routes
- Frontend ServerCard/ServerDetail logo + address wiring

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 20:57:14 +02:00
parent 99ca25c9e3
commit 807446920f
8 changed files with 73 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
import { Rcon } from 'rcon-client';
import { getHytalePlayers, getTerrariaPlayers } from './ssh.js';
import { getHytalePlayers, getTerrariaPlayers, getSpaceEngineersPlayers } from './ssh.js';
const rconConnections = new Map();
const playerCache = new Map();
@@ -118,6 +118,10 @@ export async function getPlayers(server) {
// Use log parsing for Terraria (no RCON support)
const data = await getTerrariaPlayers(server);
result = { online: data.online, max: 8 };
} else if (server.type === 'spaceengineers') {
// Use docker log parsing for Space Engineers (no RCON support)
const data = await getSpaceEngineersPlayers(server);
result = { online: data.online, max: null };
}
playerCache.set(cacheKey, { data: result, time: Date.now() });
@@ -188,6 +192,10 @@ export async function getPlayerList(server) {
// Use log parsing for Terraria (no RCON support)
const data = await getTerrariaPlayers(server);
players = data.players || [];
} else if (server.type === 'spaceengineers') {
// Use docker log parsing for Space Engineers (no RCON support)
const data = await getSpaceEngineersPlayers(server);
players = data.players || [];
}
const result = { players };