Live Status - wahke/etstats GitHub Wiki
🌐 Live-Status – Serverabfrage in Echtzeit
Die Seite live.php
zeigt den aktuellen Status deines Wolfenstein: Enemy Territory Servers an – ganz ohne RCON, nur durch UDP-Abfrage.
⚙️ Wie funktioniert das?
- Dein ET-Server muss öffentlich erreichbar sein (IP + Port)
- Die Datei
core/ServerQuery.php
sendet per UDP den Befehlgetstatus
- Der Server antwortet mit:
- Hostname
- Mapname
- Spieleranzahl
- Spielername, Score, Ping
🧪 Beispiel-Abfrage
ServerQuery::getETStatus("127.0.0.1", 27960);
Gibt ein Array zurück mit:
[
'hostname' => 'ET Server',
'mapname' => 'goldrush',
'mod' => 'etmain',
'maxplayers' => 16,
'players' => [
['name' => 'PlayerA', 'score' => 12, 'ping' => 45],
...
]
]
🛠️ Konfiguration
Du kannst IP und Port direkt in der Datenbank speichern (Tabelle settings
):
name | value |
---|---|
server_ip | 127.0.0.1 |
server_port | 27960 |
Diese Werte werden mit getSetting()
aus core/Helpers.php
geladen und an ServerQuery::getETStatus()
übergeben.
live.php
📄 Anzeige in Die Datei /pages/live.php
:
- lädt IP & Port
- führt die Abfrage aus
- zeigt:
- Servername
- Map
- Spieler
- Ping/Score
Wenn keine Verbindung möglich ist, erscheint eine Fehlermeldung.
❗ Voraussetzungen
- ET-Server muss über das Internet/Netzwerk erreichbar sein
- Firewall/Portweiterleitung muss UDP-Port (z. B.
27960
) erlauben - Funktioniert mit
etmain
,etpro
,nq
,jaymod
, etc.
🧠 Tipp: Test mit netcat
Du kannst den Befehl manuell senden:
echo -ne "\xff\xff\xff\xffgetstatus\n" | nc -u 127.0.0.1 27960
📖 Weiter zu Fehlerbehebung