Bisherige Kurztabelle durch vollständige Befehlsübersicht ersetzt, gegliedert nach Kategorien: Hilfe, Rekorde, Rankings, Strecken, Karma/Voting, Kommunikation, Spieleroptionen und Admin-Befehle. Verweis auf offizielle Dokumentation (docs.xaseco.org) hinzugefügt.
354 lines
14 KiB
Markdown
354 lines
14 KiB
Markdown
# XAseco
|
|
|
|
XAseco ist ein Server-Controller für TrackMania Nations Forever. Er verwaltet lokale Rekorde, Dedimania-Weltrekorde, Karma/Votes, eine Track-Jukebox und vieles mehr direkt im Spielchat.
|
|
|
|
Im Container wird die modifizierte Version **XAseco 1.16** verwendet, die für PHP 7.x angepasst wurde (Patches von Bueddel, Xymph, undef.de und reaby).
|
|
|
|
## Funktionsweise
|
|
|
|
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
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
<settings>
|
|
<!-- Server Configuration, can be address or ip -->
|
|
<server>ts3.techniverse.net</server>
|
|
<serverid>1</serverid>
|
|
<serverport>9987</serverport>
|
|
<queryport>10011</queryport>
|
|
|
|
<!-- Channel & Update Settings -->
|
|
<defaultchannel></defaultchannel>
|
|
<subchannel></subchannel>
|
|
<channelpassword></channelpassword>
|
|
<update_interval>30</update_interval>
|
|
|
|
<!-- Helpers and images -->
|
|
<helperURL>http://assets.techniverse.net/tm/ts3gateway/gateway3.html</helperURL>
|
|
<logoURL>http://assets.techniverse.net/tm/ts3gateway/ts3logo.jpg</logoURL>
|
|
|
|
<!-- Widget position -->
|
|
<posx>-64</posx>
|
|
<posy>45</posy>
|
|
</settings>
|
|
```
|
|
|
|
| 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.
|
|
|
|
### Erforderliche Variablen
|
|
|
|
| Variable | Beschreibung | Standard |
|
|
|----------|-------------|----------|
|
|
| `XASECO_MASTERADMIN_LOGIN` | Dein Spieler-Login (MasterAdmin mit allen Rechten) | *(muss gesetzt werden)* |
|
|
| `XASECO_DB_PASSWORD` | Passwort für die XAseco-Datenbank | *(muss gesetzt werden)* |
|
|
|
|
### Optionale Variablen
|
|
|
|
| Variable | Beschreibung | Standard |
|
|
|----------|-------------|----------|
|
|
| `XASECO_ENABLED` | XAseco aktivieren/deaktivieren | `true` |
|
|
| `XASECO_DB_HOST` | Hostname des Datenbankservers | `mariadb` |
|
|
| `XASECO_DB_NAME` | Name der XAseco-Datenbank | `xaseco` |
|
|
| `XASECO_DB_USER` | Datenbank-Benutzername | `xaseco` |
|
|
| `XASECO_DEDIMANIA_NATION` | Dedimania-Nation ([IOC-Code](https://en.wikipedia.org/wiki/List_of_IOC_country_codes), z.B. `DEU`, `AUT`, `CHE`) | `DEU` |
|
|
|
|
### Automatisch übernommene Variablen
|
|
|
|
Diese Werte werden aus der bestehenden Server-Konfiguration übernommen und müssen **nicht** separat gesetzt werden:
|
|
|
|
| Quelle | Verwendung in XAseco |
|
|
|--------|---------------------|
|
|
| `SERVER_SA_PASSWORD` | SuperAdmin-Passwort für die XML-RPC-Verbindung |
|
|
| `SERVER_XMLRPC_PORT` | XML-RPC-Port für die Verbindung zum TM-Server |
|
|
| `SERVER_LOGIN` | Dedimania Server-Login |
|
|
| `SERVER_LOGIN_PASSWORD` | Dedimania Server-Passwort |
|
|
|
|
## Datenbank
|
|
|
|
XAseco verwendet eine **eigene Datenbank** im selben MariaDB-Container. Die Datenbank und der Benutzer werden beim ersten Start des MariaDB-Containers automatisch erstellt (über ein Init-Script).
|
|
|
|
Das Datenbankschema (drei Tabellen-Dateien) wird beim ersten Start des tmserver-Containers automatisch importiert.
|
|
|
|
### Manueller Zugriff
|
|
|
|
Falls nötig, kann die XAseco-Datenbank über den MariaDB-Root-Zugang administriert werden:
|
|
|
|
```bash
|
|
docker exec -it tmserver-mariadb mysql -u root -p
|
|
```
|
|
|
|
### Nachträgliche Installation (bestehende MariaDB)
|
|
|
|
Das Init-Script (`assets/db/init-xaseco-db.sh`) wird von MariaDB nur beim **allerersten Start** (leeres `data/mariadb/`-Volume) ausgeführt. Wenn der MariaDB-Container bereits Daten enthält (z.B. weil er zuvor ohne XAseco lief), muss die Datenbank **einmalig manuell** erstellt werden:
|
|
|
|
```bash
|
|
docker exec -it tmserver-mariadb mysql -u root -p -e "
|
|
CREATE DATABASE IF NOT EXISTS xaseco CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
CREATE USER IF NOT EXISTS 'xaseco'@'%' IDENTIFIED BY 'DEIN_XASECO_DB_PASSWORT';
|
|
GRANT ALL PRIVILEGES ON xaseco.* TO 'xaseco'@'%';
|
|
FLUSH PRIVILEGES;"
|
|
```
|
|
|
|
Ersetze `DEIN_XASECO_DB_PASSWORT` durch den Wert von `XASECO_DB_PASSWORD` aus der `.env`-Datei. Das Tabellen-Schema wird anschließend beim nächsten Container-Start automatisch importiert, sofern das XAseco-Volume noch leer ist.
|
|
|
|
## Admin-System
|
|
|
|
XAseco kennt drei Berechtigungsstufen:
|
|
|
|
| Stufe | Beschreibung |
|
|
|-------|-------------|
|
|
| **MasterAdmin** | Volle Kontrolle (wird über `XASECO_MASTERADMIN_LOGIN` gesetzt) |
|
|
| **Admin** | Erweiterte Befehle (ebenfalls über `XASECO_MASTERADMIN_LOGIN` gesetzt) |
|
|
| **Operator** | Eingeschränkte Moderationsbefehle |
|
|
|
|
Weitere Admins/Operatoren können nach dem ersten Start manuell in `data/xaseco/adminops.xml` eingetragen werden.
|
|
|
|
## Persistente Daten
|
|
|
|
Alle XAseco-Daten werden im Volume `./data/xaseco/` gespeichert:
|
|
|
|
- Konfigurationsdateien (`config.xml`, `localdatabase.xml`, `dedimania.xml`, ...)
|
|
- Log-Datei (`aseco.log`)
|
|
- Admin-/Operator-Listen (`adminops.xml`)
|
|
|
|
## Deaktivieren
|
|
|
|
XAseco kann über die `.env`-Datei deaktiviert werden:
|
|
|
|
```env
|
|
XASECO_ENABLED=false
|
|
```
|
|
|
|
Der TrackMania-Server läuft dann ohne Server-Controller.
|
|
|
|
## Logs
|
|
|
|
Die XAseco-Logdatei befindet sich unter:
|
|
|
|
```
|
|
./data/xaseco/aseco.log
|
|
```
|
|
|
|
Bei Problemen ist dies die erste Anlaufstelle für die Fehlersuche.
|
|
|
|
## Chat-Befehle
|
|
|
|
Nachfolgend eine Übersicht der wichtigsten Befehle, die im Spielchat verfügbar sind. Eine vollständige Liste aller Befehle findest du in der offiziellen Dokumentation unter: https://docs.xaseco.org/commands.php
|
|
|
|
### Hilfe & Info
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/help` | Zeigt alle verfügbaren Befehle |
|
|
| `/helpall` | Zeigt ausführliche Hilfe zu allen Befehlen |
|
|
| `/xaseco` | Zeigt Infos über die XAseco-Version |
|
|
| `/server` | Zeigt Infos über den Server |
|
|
| `/plugins` | Zeigt Liste der aktiven Plugins |
|
|
| `/time` | Zeigt aktuelle Serverzeit und Datum |
|
|
|
|
### Rekorde & Statistiken
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/recs` | Zeigt alle lokalen Rekorde auf der aktuellen Strecke |
|
|
| `/recs pb` | Zeigt deine persönliche Bestzeit |
|
|
| `/recs new` | Zeigt neu gefahrene Rekorde |
|
|
| `/recs live` | Zeigt Rekorde der Online-Spieler |
|
|
| `/pb` | Zeigt deine persönliche Bestzeit auf der aktuellen Strecke |
|
|
| `/dedirecs` | Zeigt Dedimania-Rekorde auf der aktuellen Strecke |
|
|
| `/dedipb` | Zeigt deine persönliche Dedimania-Bestzeit |
|
|
| `/dedistats` | Zeigt Dedimania-Streckenstatistiken |
|
|
| `/best` | Zeigt deine besten Rekorde |
|
|
| `/worst` | Zeigt deine schlechtesten Rekorde |
|
|
| `/summary` | Zeigt eine Zusammenfassung aller deiner Rekorde |
|
|
| `/stats` | Zeigt Statistiken des aktuellen Spielers |
|
|
| `/wins` | Zeigt Siege des aktuellen Spielers |
|
|
|
|
### Rankings & Toplisten
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/rank` | Zeigt deinen aktuellen Serverrang |
|
|
| `/nextrank` | Zeigt den nächst besser platzierten Spieler |
|
|
| `/top10` | Zeigt die 10 bestplatzierten Spieler |
|
|
| `/top100` | Zeigt die 100 bestplatzierten Spieler |
|
|
| `/topwins` | Zeigt die 100 siegreichsten Spieler |
|
|
| `/toprecs` | Zeigt Top 100 der Rekord-Halter |
|
|
| `/topsums` | Zeigt Top 100 der Top-3-Rekord-Halter |
|
|
| `/active` | Zeigt die 100 aktivsten Spieler |
|
|
| `/topclans` | Zeigt die 10 bestplatzierten Clans |
|
|
|
|
### Strecken & Jukebox
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/track` | Zeigt Infos über die aktuelle Strecke |
|
|
| `/nextmap` | Zeigt den Namen der nächsten Strecke |
|
|
| `/playtime` | Zeigt, wie lange die aktuelle Strecke läuft |
|
|
| `/list` | Listet Strecken auf dem Server (siehe `/list help`) |
|
|
| `/list nofinish` | Strecken, auf denen du keinen Rang hast |
|
|
| `/list newest` | Die neuesten Strecken |
|
|
| `/list <name>` | Suche nach Strecken- oder Autorennamen |
|
|
| `/jukebox` | Track-Jukebox (siehe `/jukebox help`) |
|
|
| `/jukebox list` | Zeigt kommende Strecken |
|
|
| `/jukebox <#>` | Fügt Strecke Nr. `<#>` aus `/list` hinzu |
|
|
| `/jukebox drop` | Entfernt deine hinzugefügte Strecke |
|
|
| `/add <ID>` | Fügt eine Strecke direkt von TMX hinzu |
|
|
| `/history` | Zeigt die 10 zuletzt gespielten Strecken |
|
|
|
|
### Karma & Voting
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/karma` | Zeigt Karma der aktuellen Strecke |
|
|
| `/++` | Positive Bewertung für die aktuelle Strecke |
|
|
| `/--` | Negative Bewertung für die aktuelle Strecke |
|
|
| `/helpvote` | Zeigt Infos zum Chat-Voting-System |
|
|
| `/endround` | Startet Vote zum Beenden der aktuellen Runde |
|
|
| `/replay` | Startet Vote zum Wiederholen der Strecke |
|
|
| `/skip` | Startet Vote zum Überspringen der Strecke |
|
|
| `/kick` | Startet Vote zum Kicken eines Spielers |
|
|
| `/y` | Stimmt mit Ja bei einem laufenden Vote |
|
|
| `/cancel` | Bricht deinen aktuellen Vote ab |
|
|
|
|
### Kommunikation
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/pm <login> <msg>` | Sendet eine private Nachricht |
|
|
| `/pmlog` | Zeigt Verlauf deiner privaten Nachrichten |
|
|
| `/chatlog` | Zeigt Verlauf der letzten Chat-Nachrichten |
|
|
| `/me` | Drückt eine Aktion/Emotion aus |
|
|
| `/hi` | Sendet eine Hallo-Nachricht an alle |
|
|
| `/bye` | Sendet eine Tschüss-Nachricht an alle |
|
|
| `/gg` | Sendet "Good Game" an alle |
|
|
| `/n1` | Sendet "Nice One" an alle |
|
|
| `/brb` | Sendet "Be Right Back" an alle |
|
|
| `/afk` | Sendet "Away From Keyboard" an alle |
|
|
|
|
### Spieleroptionen
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/settings` | Zeigt deine persönlichen Einstellungen |
|
|
| `/cps` | Setzt Checkpoint-Tracking für lokale Rekorde |
|
|
| `/dedicps` | Setzt Checkpoint-Tracking für Dedimania-Rekorde |
|
|
| `/mute <login>` | Chat eines Spielers stummschalten |
|
|
| `/unmute <login>` | Stummschaltung aufheben |
|
|
| `/mutelist` | Zeigt Liste der stummgeschalteten Spieler |
|
|
| `/players` | Zeigt aktuelle Spieler-Liste (Nicks/Logins) |
|
|
| `/ranks` | Zeigt Liste der Online-Ränge |
|
|
| `/bootme` | Kickt dich selbst vom Server |
|
|
|
|
### Admin-Befehle (`/admin`)
|
|
|
|
Diese Befehle sind nur für Admins und MasterAdmins verfügbar.
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin help` | Zeigt alle Admin-Befehle |
|
|
| `/admin helpall` | Zeigt ausführliche Hilfe zu allen Admin-Befehlen |
|
|
|
|
**Server-Einstellungen:**
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin setservername <name>` | Ändert den Servernamen |
|
|
| `/admin setpwd <pwd>` | Ändert das Spieler-Passwort |
|
|
| `/admin setspecpwd <pwd>` | Ändert das Zuschauer-Passwort |
|
|
| `/admin setmaxplayers <#>` | Setzt maximale Spieleranzahl |
|
|
| `/admin setmaxspecs <#>` | Setzt maximale Zuschauerzahl |
|
|
| `/admin setgamemode <mode>` | Setzt Spielmodus (ta/rounds/team/laps/stunts/cup) |
|
|
|
|
**Strecken-Verwaltung:**
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin nextmap` | Erzwingt nächste Strecke |
|
|
| `/admin restartmap` | Startet aktuelle Strecke neu |
|
|
| `/admin replaymap` | Wiederholt aktuelle Strecke (via Jukebox) |
|
|
| `/admin endround` | Erzwingt Ende der aktuellen Runde |
|
|
| `/admin add <ID>` | Fügt Strecke von TMX hinzu |
|
|
| `/admin addlocal <datei>` | Fügt lokale Strecke hinzu |
|
|
| `/admin remove <#>` | Entfernt Strecke aus der Rotation |
|
|
| `/admin erasethis` | Entfernt aktuelle Strecke und löscht Datei |
|
|
| `/admin shuffle` | Mischt die Streckenliste zufällig |
|
|
| `/admin writetracklist` | Speichert aktuelle Streckenliste |
|
|
| `/admin readtracklist` | Lädt Streckenliste aus Datei |
|
|
|
|
**Jukebox:**
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin dropjukebox <#>` | Entfernt eine Strecke aus der Jukebox |
|
|
| `/admin clearjukebox` | Leert die gesamte Jukebox |
|
|
| `/admin pass` | Genehmigt einen laufenden Vote |
|
|
| `/admin cancel` | Bricht einen laufenden Vote ab |
|
|
|
|
**Spieler-Moderation:**
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin warn <login>` | Sendet eine Warnung an einen Spieler |
|
|
| `/admin kick <login>` | Kickt einen Spieler vom Server |
|
|
| `/admin kickghost <login>` | Kickt einen Ghost-Spieler |
|
|
| `/admin ban <login>` | Bannt einen Spieler |
|
|
| `/admin unban <login>` | Entbannt einen Spieler |
|
|
| `/admin black <login>` | Setzt einen Spieler auf die Blacklist |
|
|
| `/admin unblack <login>` | Entfernt einen Spieler von der Blacklist |
|
|
| `/admin mute <login>` | Schaltet einen Spieler global stumm |
|
|
| `/admin unmute <login>` | Hebt globale Stummschaltung auf |
|
|
| `/admin forcespec <login>` | Erzwingt Zuschauer-Modus |
|
|
| `/admin forceteam <login>` | Erzwingt Team-Zuordnung (Blue/Red) |
|
|
|
|
**Admin-Verwaltung:**
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin addadmin <login>` | Fügt einen neuen Admin hinzu |
|
|
| `/admin removeadmin <login>` | Entfernt einen Admin |
|
|
| `/admin addop <login>` | Fügt einen neuen Operator hinzu |
|
|
| `/admin removeop <login>` | Entfernt einen Operator |
|
|
| `/admin listmasters` | Zeigt MasterAdmin-Liste |
|
|
| `/admin listadmins` | Zeigt Admin-Liste |
|
|
| `/admin listops` | Zeigt Operator-Liste |
|
|
|
|
**Rekorde & System:**
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|-------------|
|
|
| `/admin delrec <#>` | Löscht einen bestimmten Rekord auf der aktuellen Strecke |
|
|
| `/admin wall <msg>` | Zeigt Popup-Nachricht für alle Spieler |
|
|
| `/admin pm <msg>` | Sendet private Nachricht an alle Admins |
|
|
| `/admin server` | Zeigt detaillierte Server-Einstellungen |
|
|
| `/admin shutdown` | Fährt XAseco herunter |
|
|
| `/admin shutdownall` | Fährt Server und XAseco herunter |
|
|
|
|
> **Tipp:** Eine vollständige Referenz aller Befehle (inkl. `/jfreu`-Befehle für erweiterte Moderation) findest du unter: https://docs.xaseco.org/commands.php
|