Sugestie
Moduł Suggestions zapewnia system zgłaszania sugestii przez społeczność, z głosowaniem (👍/👎), przyciskami Approve/Reject i opcjonalnymi wątkami dyskusji.
Włączanie modułu
- Dashboard → Twój serwer → toggle Suggestions
- Kliknij Edit i skonfiguruj kanał sugestii
- Zapisz zmiany
Konfiguracja
| Opcja | Typ | Domyślnie | Opis |
|---|---|---|---|
channel_id | string | — | Kanał, na który trafiają sugestie (wymagany) |
color_pending | hex | #3B82F6 | Kolor embeda oczekującej sugestii |
color_approved | hex | #22C55E | Kolor po zatwierdzeniu |
color_rejected | hex | #EF4444 | Kolor po odrzuceniu |
create_thread | boolean | false | Tworzenie wątku dyskusji pod sugestią |
anonymous | boolean | false | Ukrycie autora sugestii |
manage_permission | string | "moderation_roles" | Kto może approve/reject |
manage_roles | lista | [] | Role do zarządzania (gdy permission = "custom") |
counter | number | 0 | Automatyczny licznik sugestii |
Dashboard — konfiguracja
Panel edycji zawiera:
- Channel — dropdown z kanałami tekstowymi
- Colors — trzy color pickery (pending, approved, rejected)
- Create Thread — checkbox
- Anonymous — checkbox
- Manage Permission — radio: "Moderation Roles" / "Custom Roles"
- Custom Roles — multi-select (widoczny gdy wybrano "Custom")
Komendy
/suggest
Zgłasza nową sugestię.
| Parametr | Wymagany | Opis |
|---|---|---|
content | ✅ | Treść sugestii (max 2000 znaków) |
Flow:
- Bot inkrementuje counter sugestii
- Tworzy embed z tytułem "Suggestion #X", treścią i statusem "⏳ Pending"
- Wysyła embed na skonfigurowany kanał z przyciskami Approve/Reject
- Dodaje reakcje 👍 i 👎 do głosowania
- Opcjonalnie tworzy wątek dyskusji
- Wysyła efemeralną konfirmację autorowi
- Loguje utworzenie sugestii
Approve / Reject
Uprawnieni użytkownicy (patrz manage_permission) mogą kliknąć:
- Approve ✅ — zmienia kolor na zielony, status na "Approved by [nazwa]"
- Reject ❌ — zmienia kolor na czerwony, status na "Rejected by [nazwa]"
Po zatwierdzeniu/odrzuceniu:
- Przyciski są usuwane z wiadomości
- Wątek (jeśli istnieje) jest archiwizowany i zablokowany
- Moderator otrzymuje efemeralną konfirmację
- Akcja jest logowana
Głosowanie
Reakcje 👍 i 👎 służą do zbierania opinii społeczności. Bot je dodaje automatycznie, ale ich zliczanie jest widoczne natywnie przez Discord — bot nie ingeruje w licznik.
Tryb anonimowy
Gdy anonymous = true:
- Embed wyświetla autora jako "Anonymous"
- W logach autor jest nadal widoczny (dla accountability)
Nasłuchiwane zdarzenia
| Zdarzenie | Akcja |
|---|---|
on_interaction | Obsługa kliknięć przycisków Approve/Reject |
Przyciski Approve/Reject używają custom_id (nie callback) — działają nawet po restarcie bota.
Logowanie
Akcje są logowane przez Logs pod kategorią suggestions:
- 💡 Suggestion Created — z numerem, autorem i treścią (skróconą do 200 znaków)
- ✅ Suggestion Approved — z numerem i moderatorem
- ❌ Suggestion Rejected — z numerem i moderatorem
Wskazówki
- Utwórz dedykowany kanał
#suggestionsz ograniczonymi uprawnieniami pisania (tylko bot) - Włącz
create_threadaby dyskusje nie zaśmiecały głównego kanału - Ustaw
manage_permissionna"moderation_roles"aby moderatorzy mogli zatwierdzać/odrzucać - Tryb anonimowy zachęca do szczerego feedbacku, ale utrudnia moderację
Kanał sugestii musi być skonfigurowany — bez niego komenda /suggest zwróci błąd. Dashboard nie pozwoli też zapisać konfiguracji bez wybranego kanału.