Przejdź do głównej zawartości

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

  1. Dashboard → Twój serwer → toggle Suggestions
  2. Kliknij Edit i skonfiguruj kanał sugestii
  3. Zapisz zmiany

Konfiguracja

OpcjaTypDomyślnieOpis
channel_idstringKanał, na który trafiają sugestie (wymagany)
color_pendinghex#3B82F6Kolor embeda oczekującej sugestii
color_approvedhex#22C55EKolor po zatwierdzeniu
color_rejectedhex#EF4444Kolor po odrzuceniu
create_threadbooleanfalseTworzenie wątku dyskusji pod sugestią
anonymousbooleanfalseUkrycie autora sugestii
manage_permissionstring"moderation_roles"Kto może approve/reject
manage_roleslista[]Role do zarządzania (gdy permission = "custom")
counternumber0Automatyczny 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ę.

ParametrWymaganyOpis
contentTreść sugestii (max 2000 znaków)

Flow:

  1. Bot inkrementuje counter sugestii
  2. Tworzy embed z tytułem "Suggestion #X", treścią i statusem "⏳ Pending"
  3. Wysyła embed na skonfigurowany kanał z przyciskami Approve/Reject
  4. Dodaje reakcje 👍 i 👎 do głosowania
  5. Opcjonalnie tworzy wątek dyskusji
  6. Wysyła efemeralną konfirmację autorowi
  7. 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

ZdarzenieAkcja
on_interactionObsługa kliknięć przycisków Approve/Reject
Persistent Views

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

Best practices
  • Utwórz dedykowany kanał #suggestions z ograniczonymi uprawnieniami pisania (tylko bot)
  • Włącz create_thread aby dyskusje nie zaśmiecały głównego kanału
  • Ustaw manage_permission na "moderation_roles" aby moderatorzy mogli zatwierdzać/odrzucać
  • Tryb anonimowy zachęca do szczerego feedbacku, ale utrudnia moderację
ostrzeżenie

Kanał sugestii musi być skonfigurowany — bez niego komenda /suggest zwróci błąd. Dashboard nie pozwoli też zapisać konfiguracji bez wybranego kanału.