# Tovah-Zar — Most Discord ⇄ Conan Exiles Dwukierunkowy most między serwerem Conan Exiles (Enhanced) a serwerem Discord. Działa w trybie podstawowym **bez moda** (natywny RCON + log serwera), a z małym modem mostu (Chat V2 API) zyskuje komendy in-game i wiadomości RP z nadawcą. ## Co potrafi **Conan → Discord** - Relacja czatu z gry na żywo na kanał Discorda. - Powiadomienia: logowania/wylogowania, zgony, eventy GM. - (z modem) `/discord ` w grze → wiadomość na Discord. **Discord → Conan** - `!say ` → `broadcast` w grze (widzą wszyscy) — DZIAŁA NA SAMYM RCON. - `!players` → lista graczy online (RCON `listplayers`). - `!kick`, `!ban` (tylko role GM). - (z modem) `!ogłoś ` → wiadomość RP z nadawcą (np. „Król Khasar: ..."). ## Architektura ``` ┌──────────────────────────────────────────┐ │ BOT (Python, ten projekt) │ Discord ◄───►│ discord.py ──► RCON client ──► Conan │ │ ▲ (TCP, komendy) │ │ │ │ │ log watcher ◄── SFTP/lokalny log Conana ◄───┤ Conan pisze log └──────────────────────────────────────────┘ ``` - **RCON** = kanał Discord→Conan (komendy z efektem w grze). - **Log watcher** = kanał Conan→Discord (czat/zdarzenia z gry). - Bot stoi na VPS lub Twoim NUC-u (na wynajętym Host Havoc nie ma dostępu do OS maszyny — łączy się zdalnie po RCON + SFTP). ## Szybki start ```bash python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt cp .env.example .env # uzupełnij dane python -m bot.main ``` ## Wymagania po stronie Conan/Host Havoc - Włączony **RCON** (w panelu Host Havoc / `Engine.ini`): `RconEnabled=True`, `RconPassword=...`, `RconPort=...`. - Dostęp do pliku logu serwera: lokalnie (self-host) lub przez **SFTP** (Host Havoc). ## Struktura plików ``` conan-discord-bridge/ ├── README.md ├── requirements.txt ├── .env.example ├── config.example.toml └── bot/ ├── main.py # punkt wejścia, ładuje cogs ├── core/ │ ├── config.py # ładowanie .env / toml │ ├── rcon.py # klient Source RCON (async) │ └── logwatch.py # tail logu lokalnie lub po SFTP + parser └── cogs/ ├── from_conan.py # Conan -> Discord (relacja czatu/eventów) └── to_conan.py # Discord -> Conan (komendy RCON) ``` ## Most z własnym modem (opcjonalnie, później) Mały mod na **Tot ! Chat V2 API** definiuje: - komendę `/discord ` → zapisuje znacznik do logu, który bot wykrywa, - kanał RP, na który bot (przez RCON-owy hook) wysyła wiadomości „z nadawcą". Bot jest na to gotowy — patrz `cogs/to_conan.py` (funkcja `rp_announce`). ``` ```