mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00: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>→broadcastw grze (widzą wszyscy) — DZIAŁA NA SAMYM RCON.!players→ lista graczy online (RCONlistplayers).!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(funkcjarp_announce).