From 344029c551e480966b519aff002efc3bb57be867 Mon Sep 17 00:00:00 2001 From: "Patrick Asmus (scriptos)" Date: Sun, 22 Mar 2026 23:35:11 +0100 Subject: [PATCH 1/2] feat: TeamSpeak3-Plugin mit eigenem Gateway reaktivieren --- Dockerfile | 10 ++++-- assets/bin/RunTrackmaniaServer.sh | 34 ++++++++++++++++++++ assets/config/xaseco/teamspeak3.xml | 23 ++++++++++++++ docs/xaseco.md | 49 +++++++++++++++++++++++++++++ 4 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 assets/config/xaseco/teamspeak3.xml diff --git a/Dockerfile b/Dockerfile index 9c5deaa..dbc418f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -130,9 +130,13 @@ RUN unzip /opt/tmserver/xaseco_v1.16.zip -d /opt/tmserver/ \ # newinstall-Ordner aufraeumen && rm -rf /opt/tmserver/xaseco/newinstall -# Nicht mehr verfuegbare Plugins deaktivieren (freezone entfernen, teamspeak3 auskommentieren) -RUN sed -i '/plugin\.freezone\.php<\/plugin>/d' /opt/tmserver/xaseco/plugins.xml \ - && sed -i 's/plugin\.teamspeak3\.php<\/plugin>//' /opt/tmserver/xaseco/plugins.xml +# Nicht mehr verfuegbares freezone-Plugin entfernen +RUN sed -i '/plugin\.freezone\.php<\/plugin>/d' /opt/tmserver/xaseco/plugins.xml + +# TeamSpeak3-Plugin: Eigenes Gateway einbinden (Original-Gateway nicht mehr verfuegbar) +# Die teamspeak3.xml wird direkt in den XAseco-Ordner kopiert, damit das Plugin +# beim Start automatisch den konfigurierten TS3-Server anzeigt. +COPY assets/config/xaseco/teamspeak3.xml /opt/tmserver/xaseco/teamspeak3.xml # XAseco als Default-Template sichern (wird beim ersten Start ins Volume kopiert) RUN cp -a /opt/tmserver/xaseco /opt/tmserver/default-xaseco diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index 5e60d82..54dfd89 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -353,6 +353,40 @@ if [ "$XASECO_ENABLED" = "true" ]; then fi fi +# ============================================================ +# XAseco: TeamSpeak3-Plugin Gateway aktualisieren (fuer bestehende Volumes) +# ============================================================ +# Das Original-TS3-Gateway ist nicht mehr verfuegbar. Die eigene +# teamspeak3.xml mit dem Ersatz-Gateway wird in das Volume kopiert, +# falls sie fehlt oder noch das alte (nicht mehr erreichbare) Gateway +# referenziert. Gleichzeitig wird das Plugin reaktiviert, falls es +# in einer frueheren Version auskommentiert wurde. +# ============================================================ +XASECO_DIR_TS3="/opt/tmserver/xaseco" +TS3_XML="$XASECO_DIR_TS3/teamspeak3.xml" +TS3_DEFAULT="/opt/tmserver/default-xaseco/teamspeak3.xml" +TS3_PLUGINS_XML="$XASECO_DIR_TS3/plugins.xml" + +# teamspeak3.xml aktualisieren: Kopieren wenn fehlend oder veraltet +if [ -f "$TS3_DEFAULT" ]; then + if [ ! -f "$TS3_XML" ]; then + echo "==> TeamSpeak3-Gateway: teamspeak3.xml fehlt, kopiere aus Template..." + cp "$TS3_DEFAULT" "$TS3_XML" + echo " teamspeak3.xml erfolgreich kopiert." + elif ! diff -q "$TS3_DEFAULT" "$TS3_XML" > /dev/null 2>&1; then + echo "==> TeamSpeak3-Gateway: teamspeak3.xml wird aktualisiert..." + cp "$TS3_DEFAULT" "$TS3_XML" + echo " teamspeak3.xml erfolgreich aktualisiert." + fi +fi + +# TS3-Plugin reaktivieren, falls es auskommentiert ist +if [ -f "$TS3_PLUGINS_XML" ] && grep -q '' "$TS3_PLUGINS_XML"; then + echo "==> TeamSpeak3-Plugin: Reaktiviere auskommentiertes Plugin..." + sed -i 's||plugin.teamspeak3.php|' "$TS3_PLUGINS_XML" + echo " TeamSpeak3-Plugin erfolgreich aktiviert." +fi + # ============================================================ # RemoteCP: PHP-Warnungen in Plugins fixen (fuer bestehende Volumes) # ============================================================ diff --git a/assets/config/xaseco/teamspeak3.xml b/assets/config/xaseco/teamspeak3.xml new file mode 100644 index 0000000..1f9d61f --- /dev/null +++ b/assets/config/xaseco/teamspeak3.xml @@ -0,0 +1,23 @@ + + + + ts3.techniverse.net + 1 + 9987 + 10011 + + + + + + 30 + + + + http://assets.techniverse.net/tm/ts3gateway/gateway3.html + http://assets.techniverse.net/tm/ts3gateway/ts3logo.jpg + + + -64 + 45 + diff --git a/docs/xaseco.md b/docs/xaseco.md index 91553d2..551e71c 100644 --- a/docs/xaseco.md +++ b/docs/xaseco.md @@ -8,6 +8,55 @@ Im Container wird die modifizierte Version **XAseco 1.16** verwendet, die für P XAseco verbindet sich über XML-RPC mit dem TrackMania-Server und reagiert auf Spielereignisse (neue Rekorde, Spieler-Connects, Chat-Befehle usw.). Die Daten werden in einer eigenen MySQL-Datenbank gespeichert. +## TeamSpeak 3 Integration + +XAseco enthält ein Plugin (`plugin.teamspeak3.php`), das im Spiel ein Widget mit den aktuell verbundenen TeamSpeak-3-Nutzern anzeigt. Das Plugin ist **standardmäßig aktiviert** und verwendet ein eigenes Gateway, das im Container mitgeliefert wird (das Original-Gateway des Plugin-Entwicklers ist nicht mehr verfügbar). + +### TS3-Server konfigurieren + +Die Konfiguration erfolgt über die Datei `data/xaseco/teamspeak3.xml`. Dort kann der eigene TeamSpeak-3-Server eingetragen werden: + +```xml + + + + ts3.techniverse.net + 1 + 9987 + 10011 + + + + + + 30 + + + http://assets.techniverse.net/tm/ts3gateway/gateway3.html + http://assets.techniverse.net/tm/ts3gateway/ts3logo.jpg + + + -64 + 45 + +``` + +| Feld | Beschreibung | +|------|-------------| +| `server` | Hostname oder IP des TS3-Servers | +| `serverid` | Virtuelle-Server-ID (meist `1`) | +| `serverport` | Voice-Port des TS3-Servers (Standard: `9987`) | +| `queryport` | ServerQuery-Port (Standard: `10011`) | +| `defaultchannel` | Standard-Channel (leer = Server-Default) | +| `subchannel` | Sub-Channel (optional) | +| `channelpassword` | Channel-Passwort (optional) | +| `update_interval` | Aktualisierungsintervall in Sekunden | +| `helperURL` | URL zur Gateway-HTML-Seite (nicht ändern) | +| `logoURL` | URL zum TS3-Logo im Widget (nicht ändern) | +| `posx` / `posy` | Widget-Position im Spiel | + +> **Hinweis:** Standardmäßig ist der TS3-Server `ts3.techniverse.net` vorkonfiguriert. Zum Anpassen einfach nach dem ersten Start die Datei `data/xaseco/teamspeak3.xml` bearbeiten. Die Felder `helperURL` und `logoURL` verweisen auf das mitgelieferte Gateway und sollten nicht geändert werden. + ## Konfiguration Die Konfiguration erfolgt ausschließlich über Umgebungsvariablen in der `.env`-Datei. Beim **ersten Start** (leeres XAseco-Volume) werden die Werte automatisch in die XML-Konfigurationsdateien eingetragen. -- 2.49.1 From 5a321db0947baa07fd7e3a4c688baa99165fa5a9 Mon Sep 17 00:00:00 2001 From: "Patrick Asmus (scriptos)" Date: Sun, 22 Mar 2026 23:41:40 +0100 Subject: [PATCH 2/2] Release: Docker Image Version 1.2.1 gepusht --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 19c4aff..731e6ac 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: tmserver: - image: git.techniverse.net/scriptos/trackmania-server:1.2.0 + image: git.techniverse.net/scriptos/trackmania-server:1.2.1 build: context: . container_name: tmserver -- 2.49.1