Przejdź do głównej zawartości

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

ParametrTypWymaganyOpis
(brak)

Uprawnienia: Administrator serwera

Przykład: /duel send

Sukces:

  1. Kasuje poprzednią wiadomość przypomnienia (jeśli istnieje)
  2. Wysyła dzisiejszy szablon do skonfigurowanego kanału
  3. Zapisuje last_message_id do konfiguracji
  4. 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.

ParametrTypWymaganyOpis
(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:

  1. Iteruje po wszystkich serwerach z włączonym cogiem duel_reminder
  2. Sprawdza czy now.hour == send_hour i now.minute == send_minute (w strefie czasowej serwera)
  3. Sprawdza czy dzisiaj już nie wysłano (deduplikacja)
  4. Jeśli warunki spełnione → wywołuje _send_daily_reminder

Zachowanie wysyłania

  1. Kasuje poprzednią wiadomość (last_message_id)
  2. Pobiera szablon dla dzisiejszego dnia tygodnia
  3. Buduje embed z szablonu
  4. Wysyła do kanału
  5. Zapisuje nowy last_message_id
Anti-spam

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

  1. Szablony z cog_settings.duel_reminder.templates (dashboard) — wyższy priorytet
  2. Domyślne z duel_templates.json — fallback

Konfiguracja

OpcjaOpisDomyślna wartość
channel_idKanał do wysyłania przypomnieńbrak (wymagany)
send_hourGodzina wysyłania (24h)8
send_minuteMinuta wysyłania0
timezone_offsetOffset UTC (np. 2 dla CEST)2
last_message_idID ostatnio wysłanej wiadomości (auto)null
templatesNiestandardowe szablony per dzieńnull (użyj domyślnych)
Wymagana konfiguracja

channel_id musi być ustawiony w dashboardzie. Bez niego cog nie będzie wysyłał przypomnień (ani automatycznie, ani przez /duel send).

Strefa czasowa

timezone_offset: 2 oznacza UTC+2 (Central European Summer Time). Zmień na 1 zimą (CET) lub dostosuj do strefy Twojego serwera.