Duel Reminder
Codzienne przypomnienia o strategiach pojedynków w Dark War Survival. Bot wysyła embed o skonfigurowanej godzinie z szablonem specyficznym dla danego dnia tygodnia. Przed wysłaniem nowej wiadomości kasuje wczorajszą.
Komendy
/duel send
Ręcznie wysyła dzisiejsze przypomnienie o pojedynku (do testowania lub pierwszego użycia).
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| (brak) | — | — | — |
Uprawnienia: Administrator serwera
Przykład: /duel send
Sukces:
- Kasuje poprzednią wiadomość przypomnienia (jeśli istnieje)
- Wysyła dzisiejszy szablon do skonfigurowanego kanału
- Zapisuje
last_message_iddo konfiguracji - Ephemeral potwierdzenie "✅ Duel reminder sent!"
Błędy:
- Brak uprawnień administratora
- Kanał nie skonfigurowany
- Brak szablonu dla dzisiejszego dnia
- Bot nie ma uprawnień do pisania w kanale
/duel preview
Podgląd dzisiejszego szablonu przypomnienia bez wysyłania do kanału.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| (brak) | — | — | — |
Uprawnienia: Każdy (Everyone) — odpowiedź jest ephemeral
Przykład: /duel preview
Sukces: Ephemeral embed z dzisiejszym szablonem (content + embed)
Błędy:
- Brak szablonu dla dzisiejszego dnia
Automatyczne wysyłanie
Bot sprawdza co minutę, czy jest czas na wysłanie przypomnienia:
- Iteruje po wszystkich serwerach z włączonym cogiem
duel_reminder - Sprawdza czy
now.hour == send_hourinow.minute == send_minute(w strefie czasowej serwera) - Sprawdza czy dzisiaj już nie wysłano (deduplikacja)
- Jeśli warunki spełnione → wywołuje
_send_daily_reminder
Zachowanie wysyłania
- Kasuje poprzednią wiadomość (
last_message_id) - Pobiera szablon dla dzisiejszego dnia tygodnia
- Buduje embed z szablonu
- Wysyła do kanału
- Zapisuje nowy
last_message_id
Każdego dnia w kanale jest dokładnie jedna wiadomość z przypomnieniem. Poprzednia jest automatycznie kasowana, więc kanał pozostaje czysty.
Szablony
Każdy dzień tygodnia ma osobny szablon. Bot dostarcza domyślne szablony w pliku duel_templates.json, ale można je nadpisać w dashboardzie.
Struktura szablonu
{
"Monday": {
"content": "@everyone Dzisiejsze pojedynki!",
"embed": {
"title": "⚔️ Poniedziałkowa strategia",
"description": "Dzisiaj walczymy...",
"color": "#E74C3C",
"image": "https://...",
"thumbnail": "https://...",
"footer": { "text": "Dark War Survival" },
"author": { "name": "Duel Master", "icon_url": "https://..." }
}
},
"Tuesday": { ... },
"Wednesday": { ... },
...
}
Priorytet szablonów
- Szablony z
cog_settings.duel_reminder.templates(dashboard) — wyższy priorytet - Domyślne z
duel_templates.json— fallback
Konfiguracja
| Opcja | Opis | Domyślna wartość |
|---|---|---|
channel_id | Kanał do wysyłania przypomnień | brak (wymagany) |
send_hour | Godzina wysyłania (24h) | 8 |
send_minute | Minuta wysyłania | 0 |
timezone_offset | Offset UTC (np. 2 dla CEST) | 2 |
last_message_id | ID ostatnio wysłanej wiadomości (auto) | null |
templates | Niestandardowe szablony per dzień | null (użyj domyślnych) |
channel_id musi być ustawiony w dashboardzie. Bez niego cog nie będzie wysyłał przypomnień (ani automatycznie, ani przez /duel send).
timezone_offset: 2 oznacza UTC+2 (Central European Summer Time). Zmień na 1 zimą (CET) lub dostosuj do strefy Twojego serwera.