Rollback: Runden aus CS2-Sicherungen zurückspielen (nur Admin)
Beim Konfigurieren aktiviert CS2 Mapveto die Rundensicherung des Servers (mp_backup_round_auto, Präfix mit Match-ID). Im Admin-Modus lassen sich die Sicherungen der laufenden Map auflisten und zurückspielen. Der Live-Stand wird auf die Runden bis zur Sicherung gekürzt. Organisatoren haben keinen Zugang zu den Rollback-Routen. Sicherheit: Dateinamen werden gegen Match-ID und Muster geprüft, damit keine fremden Dateien oder Befehle in die RCON-Zeile gelangen. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
22996cc4e4
commit
a4218c47d1
13 files changed
+327
-5
No files matched your search
@@ -1,3 +1,4 @@
|
||||
import { parseBackupFiles } from '../rounds.js';
|
||||
import { parseStatus, runRcon } from './rcon.js';
|
||||
|
||||
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
||||
@@ -42,3 +43,19 @@ export async function rconStatus(target) {
|
||||
const [output] = await runRcon(target, ['status'], { timeoutMs: 4000 });
|
||||
return parseStatus(output);
|
||||
}
|
||||
|
||||
/** Sicherungsdateien dieses Matches vom Server holen. */
|
||||
export async function listRoundBackups(target, matchId) {
|
||||
const [out] = await runRcon(target, ['mp_backup_restore_list_files 60'], { timeoutMs: 8000, quietMs: 500 });
|
||||
return parseBackupFiles(out, matchId);
|
||||
}
|
||||
|
||||
/** Sicherung laden. Der Dateiname muss vorher mit isValidBackupFile geprüft sein. */
|
||||
export async function loadRoundBackup(target, file) {
|
||||
// mp_backup_restore_load_autopause wirkt in CS2 nicht zuverlässig, deshalb pausieren wir ausdrücklich
|
||||
await runRcon(target, [
|
||||
'mp_backup_restore_load_autopause 1',
|
||||
`mp_backup_restore_load_file "${file}"`,
|
||||
'mp_pause_match',
|
||||
], { timeoutMs: 15000, quietMs: 800 });
|
||||
}
|
||||
Reference in new issue
Block a user