Message Builder
Moduł Message Builder umożliwia tworzenie, zarządzanie i wysyłanie niestandardowych embedów Discord z zapisanych szablonów. Szablony są konfigurowane przez dashboard za pomocą wizualnego edytora inline.
Włączanie modułu
- Dashboard → Twój serwer → toggle Message Builder
- Kliknij Edit aby tworzyć i zarządzać szablonami
- Skonfiguruj uprawnienia wysyłania
- Zapisz zmiany
Konfiguracja
| Opcja | Typ | Domyślnie | Opis |
|---|---|---|---|
send_permission | string | "moderation_roles" | Kto może wysyłać embedy |
send_roles | lista | [] | Role do wysyłania (gdy permission = "custom") |
allowed_channels | lista | [] | Kanały, na które można wysyłać (puste = wszystkie) |
templates | array | [] | Lista zapisanych szablonów |
Wartości send_permission
"moderation_roles"— role z konfiguracji moderacji"custom"— role zsend_roles
Administratorzy Discord zawsze mają uprawnienie do wysyłania.
Dashboard — konfiguracja
Panel Message Builder ma układ dwukolumnowy:
- Lewa kolumna (1/4): Sidebar z listą szablonów (CRUD: create, edit, delete)
- Prawa kolumna (3/4): Wizualny edytor embeda (inline — edytor IS the preview)
Edytor embeda
Edytor jest jednocześnie podglądem — to, co widzisz, to dokładnie to, co zostanie wysłane:
- Content — pole tekstowe nad embedem (zwykły tekst wiadomości)
- Tytuł — klikalny do edycji
- Opis — klikalny do edycji
- Kolor — presets (kółka) + custom rainbow picker
- Thumbnail — klikalny placeholder (dashed border) → URL input
- Image — klikalny placeholder → URL input
- Author — nazwa + ikona
- Footer — tekst stopki
- Fields — lista pól (name + value + inline toggle) + przycisk "Add Field"
Zarządzanie szablonami
- Utwórz — przycisk "New Template", podaj nazwę
- Edytuj — kliknij szablon w sidebarze, załaduje się do edytora
- Usuń — przycisk delete na karcie szablonu
- Wyślij — przycisk "Send to Channel" z wyborem kanału
Komendy
/embed send
Wysyła zapisany szablon na kanał.
| Parametr | Wymagany | Opis |
|---|---|---|
template_name | ✅ | Nazwa szablonu (z autocomplete) |
channel | ❌ | Kanał docelowy (domyślnie: bieżący) |
Flow:
- Sprawdza uprawnienie (
send_permission) - Szuka szablonu po nazwie (case-insensitive)
- Sprawdza, czy kanał jest dozwolony (
allowed_channels) - Buduje embed z konfiguracji szablonu
- Wysyła embed (+ opcjonalny content text)
- Aktualizuje
last_sent_channel_idilast_sent_message_idw szablonie - Loguje akcję
Parametr template_name obsługuje autocomplete — po wpisaniu fragmentu nazwy, Discord podpowie pasujące szablony.
/embed list
Wyświetla listę wszystkich zapisanych szablonów (efemeralnie).
Pokazuje:
- Nazwę szablonu
- Podgląd tytułu (skrócony do 50 znaków)
- Łączną liczbę szablonów
Ograniczenie kanałów
Jeśli allowed_channels nie jest puste, embedy można wysyłać tylko na kanały z tej listy. Próba wysłania na inny kanał zwróci błąd.
Gdy lista jest pusta — wysyłanie dozwolone na każdy kanał.
Śledzenie wysłanych wiadomości
Każdy szablon przechowuje:
last_sent_channel_id— ID kanału ostatniego wysłanialast_sent_message_id— ID wiadomości
Umożliwia to przyszłe funkcje (edycja wysłanych embedów, podgląd w dashboardzie).
Nasłuchiwane zdarzenia
Moduł Message Builder nie nasłuchuje żadnych zdarzeń — działa wyłącznie na komendach slash i dashboard API.
Logowanie
Akcje logowane przez Logs pod kategorią message_builder:
- 📨 Embed Sent — nazwa szablonu, kto wysłał, na jaki kanał
Wskazówki
- Twórz szablony dla powtarzających się ogłoszeń (np. tygodniowe newsy, eventy)
- Używaj
allowed_channelsaby ograniczyć, gdzie embedy mogą być wysyłane - Pole Content (nad embedem) jest przydatne do pingowania ról/everyone
- Testuj embedy za pomocą
/embed sendna kanale testowym przed właściwym
Organizuj szablony z jasnymi nazwami:
weekly-update— tygodniowa aktualizacjaevent-announcement— szablon ogłoszenia eventurules— regulamin serwera
Usunięcie szablonu jest nieodwracalne. Upewnij się, że nie jest już potrzebny.