Logi
Moduł Logs zapewnia scentralizowany system logowania akcji wykonywanych przez inne moduły bota. Każda kategoria logów może być kierowana na osobny kanał z indywidualnym kolorem embeda.
Włączanie modułu
- Dashboard → Twój serwer → toggle Logs
- Kliknij Edit aby skonfigurować poszczególne kategorie logów
- Dla każdej kategorii: włącz toggle, wybierz kanał, opcjonalnie zmień kolor
- Zapisz zmiany
Nie można zapisać włączonej kategorii logów bez wybranego kanału. Dashboard podświetli brakujące pole i wyświetli komunikat błędu.
Kategorie logów
| Kategoria | Logowane akcje |
|---|---|
moderation | Ban, kick, mute, unmute, warn, clear, setnick, role add/remove, przekroczenie progu ostrzeżeń |
welcome | Member joined, member left |
reaction_roles | Role added/removed via buttons, dropdown, reactions + błędy (brakująca rola) |
suggestions | Suggestion created, approved, rejected |
polls | Poll created, poll closed |
message_builder | Embed sent |
alliances | Alliance created/deleted, member added/removed/promoted/demoted, leadership transfer, auto-succession |
presidents | President appointed, removed, decree issued |
armory | Armory slot assigned, cleared |
Konfiguracja
Każda kategoria logów ma trzy ustawienia:
| Opcja | Typ | Opis |
|---|---|---|
enabled | boolean | Czy ta kategoria jest aktywna |
channel_id | string | ID kanału docelowego |
color | string (hex) | Kolor embeda logów (opcjonalny) |
Przykład konfiguracji (JSON)
{
"logs": {
"moderation": {
"enabled": true,
"channel_id": "1234567890",
"color": "#5865F2"
},
"welcome": {
"enabled": true,
"channel_id": "1234567890",
"color": "#22C55E"
},
"alliances": {
"enabled": true,
"channel_id": "9876543210",
"color": "#10B981"
}
}
}
Dashboard — konfiguracja
Panel edycji Logs wyświetla siatkę kafelków (tile grid) — jeden na kategorię:
Każdy kafelek zawiera:
- Tytuł kategorii + krótki opis
- Toggle — włącz/wyłącz
- Channel Select — dropdown z kanałami tekstowymi
- Color Picker — klikalna próbka koloru + hex input
Wszystkie kategorie zapisywane są jednym kliknięciem Save (UnsavedBar).
Format logów
Każdy log to embed Discord z następującą strukturą:
┌─────────────────────────────┐
│ 🔨 Ban │ ← tytuł z emoji akcji
├─────────────────────────────┤
│ Target: @User (ID: 123) │
│ Moderator: @Mod (ID: 456) │
│ Reason: Spamowanie │
├─────────────────────────────┤
│ 2026-06-12T10:30:00Z │ ← ISO timestamp w footerze
└─────────────────────────────┘
Emoji akcji
| Akcja | Emoji + Tytuł |
|---|---|
| Ban | 🔨 Ban |
| Kick | 👢 Kick |
| Mute | 🔇 Mute |
| Unmute | 🔊 Unmute |
| Warning | ⚠️ Warning |
| Clear | 🗑️ Clear |
| Nickname Change | 📝 Nickname Change |
| Role Added | ➕ Role Added |
| Role Removed | ➖ Role Removed |
| Member Joined | 📥 Member Joined |
| Member Left | 📤 Member Left |
| Suggestion Created | 💡 Suggestion Created |
| Suggestion Approved | ✅ Suggestion Approved |
| Suggestion Rejected | ❌ Suggestion Rejected |
| Poll Created | 📊 Poll Created |
| Poll Closed | 📊 Poll Closed |
| Embed Sent | 📨 Embed Sent |
| Alliance Created | ⚔️ Alliance Created |
| Alliance Deleted | 🗑️ Alliance Deleted |
| Member Added (alliance) | ➕ Member Added |
| Member Removed (alliance) | ➖ Member Removed |
| Rank Changed | 📊 Rank Changed |
| Leadership Transferred | 👑 Leadership Transferred |
| President Appointed | 🎖️ President Appointed |
| President Removed | 🚫 President Removed |
| Decree Issued | 📜 Decree Issued |
| Armory Assigned | 🏰 Armory Assigned |
| Armory Cleared | 🏰 Armory Cleared |
Jak inne moduły wysyłają logi
Inne moduły korzystają z API modułu Logs:
logs_cog = self.bot.get_cog("LogsCog")
if logs_cog:
embed = logs_cog.build_log_embed("ban", target, moderator, reason)
await logs_cog.send_log(guild_id, "moderation", embed)
Metoda send_log sprawdza:
- Czy dana kategoria jest włączona (
enabled) - Czy skonfigurowano kanał (
channel_id) - Opcjonalnie nadpisuje kolor embeda na skonfigurowany
Jeśli kategoria jest wyłączona lub brak kanału — log jest po cichu pomijany.
Nasłuchiwane zdarzenia
Moduł Logs nie nasłuchuje bezpośrednio żadnych zdarzeń Discord. Działa jako serwis — inne moduły wywołują jego metody send_log i build_log_embed.
Wskazówki
- Utwórz dedykowane kanały na logi (np.
#logs-moderation,#logs-alliances) - Ogranicz dostęp do kanałów logów tylko do moderatorów/adminów
- Użyj różnych kolorów dla kategorii — ułatwia to szybkie rozpoznawanie typów logów
- Włącz co najmniej kategorię
moderation— to podstawowy audit trail
Możesz ustawić ten sam kanał dla wszystkich kategorii — logi będą się rozróżniać kolorem i emoji. Ale osobne kanały dają lepszą organizację.
Moduł Logs nie posiada żadnych komend slash. Cała konfiguracja odbywa się przez dashboard.