# leitstelle_bridge

FiveM-Resource für die Live-Anbindung des Leitstelle Admin-Panels an ESX Legacy.

## Installation

1. Den Ordner `leitstelle_bridge` in den `resources`-Ordner deines Servers kopieren.
2. In der `server.cfg` nach `ensure es_extended` (und nach ox_inventory, falls vorhanden) ergänzen:
   ```
   set leitstelle_token "HIER-EINEN-LANGEN-ZUFÄLLIGEN-SCHLÜSSEL"
   ensure leitstelle_bridge
   ```
   Einen Schlüssel erzeugst du im Panel-Ordner mit `npm run token`. Der Befehl gibt die fertigen Zeilen für die server.cfg aus.
3. Server neu starten. In der Konsole steht: `[leitstelle_bridge] bereit`.
4. Im Panel unter Einstellungen → FiveM-Server eintragen:
   - Adresse: `http://127.0.0.1:30120/leitstelle_bridge` (30120 durch deinen Port ersetzen)
   - Schlüssel: derselbe wie in der server.cfg
   Dann „Verbindung testen“ und „Speichern“.

## Wenn Panel und FiveM auf verschiedenen Rechnern laufen

In `config.lua` bei `Config.AllowedIPs` die IP-Adresse des Panel-Rechners eintragen. Die Schnittstelle läuft über den Spiel-Port und ist damit aus dem Internet erreichbar. Sie ist nur durch Schlüssel und IP-Freigabe geschützt. Lass die IP-Liste deshalb nie leer.

## Wiederbeleben und Heilen anpassen

Welche Events dafür nötig sind, hängt von deinem Todes- bzw. Ambulanz-Script ab. Standard ist `esx_ambulancejob:revive`. Nutzt dein Server ein anderes Script (z. B. next_death), trag in `config.lua` das passende Event oder eine `Config.ReviveFunction` ein. Die Dokumentation deines Scripts nennt den Export bzw. das Event.

## Was die Resource kann

- Online-Spieler mit Job, Geld, Gesundheit, Ping und Position liefern
- Wiederbeleben, heilen, einfrieren, teleportieren, kicken
- Geld geben, abziehen oder setzen (Obergrenze in `Config.MaxMoneyAction`)
- Job setzen, Items geben oder abziehen (ox_inventory wird automatisch erkannt)
- Nachricht an einen Spieler, Ankündigung an alle, Spieler speichern
- Bans durchsetzen: Das Panel überträgt die aktiven Bans an die Resource. Sie speichert sie lokal (Resource-KVP) und weist gebannte Spieler beim Verbinden ab, auch wenn das Panel gerade nicht erreichbar ist. Geprüft werden alle Kennungen (license, discord, steam, fivem …), die beim Bannen bekannt waren.

Jede Aktion wird in der Server-Konsole und im Panel-Protokoll mit dem Namen des Admins festgehalten.

## Tickets und Spiel-Logs

- Spieler senden mit `/report <Text>` ein Ticket. Den Befehl änderst du in `config.lua` bei `Config.ReportCommand`.
- Welche Logs gesammelt werden, stellst du in `Config.Logs` ein. Chat ist standardmäßig aus.
- Die Resource hält die letzten 5000 Ereignisse im Speicher, das Panel holt sie alle 5 Sekunden ab. Läuft das Panel nicht, gehen bei sehr viel Betrieb ältere Ereignisse verloren.
- Item-Übergaben werden nur mit ox_inventory erfasst.

## Geplante Neustarts

Die Aktion `restart` speichert alle Spieler, trennt sie und beendet den Server mit `quit`. Neu gestartet wird er nur von txAdmin oder einem anderen Prozess-Manager.

## Neu in 1.3

- `client.lua` ist neu (für Fahrzeug-Reparaturen). Beim Update alle Dateien kopieren und in der Konsole `refresh` und danach `restart leitstelle_bridge` eingeben.
- **Whitelist:** wird im Panel unter „Bewerbungen“ eingeschaltet. Nicht freigeschaltete Spieler sehen beim Verbinden ihren Bewerbungs-Code. Den Hinweistext stellst du mit `Config.WhitelistMessage` ein. Nutzt dein Server schon ein anderes Whitelist-Script, lass die Panel-Whitelist aus.
- **Spieler-Portal:** Befehl `/portal` (`Config.PortalCommand`), Adresse in `Config.PortalUrl` eintragen.
- **Resources und Fahrzeuge:** werden aus dem Panel gesteuert. Die Bridge kann sich selbst nicht stoppen.
