Files
conjurer/working_copy/conanjurer/conan-discord-bridge
Michal Tuszowski b107f01208 Working copy
2026-06-11 18:13:05 +02:00
..
2026-06-11 18:13:05 +02:00
2026-06-11 18:13:05 +02:00
2026-06-11 18:13:05 +02:00
2026-06-11 18:13:05 +02:00

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 <tekst> w grze → wiadomość na Discord.

Discord → Conan

  • !say <tekst>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ś <NPC> <tekst> → 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

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 <tekst> → 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).