Alliances
System zarządzania aliansami dla społeczności Dark War Survival. Komendy zgrupowane pod prefixem /alliance.
System aliansów używa rang R1–R5:
- R5 — Lider (jeden na alians, pełne uprawnienia)
- R4 — Oficer (zapraszanie, wyrzucanie R1–R3)
- R3–R1 — Członkowie (bez uprawnień zarządzania)
Komendy
/alliance create
Tworzy nowy alians z podaną nazwą, tagiem i kolorem. Automatycznie tworzy rolę Discord w formacie [TAG] Nazwa.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| name | string | Tak | Nazwa aliansu (2–32 znaki: litery, cyfry, spacje, myślniki) |
| tag | string | Tak | Krótki tag (1–5 znaków alfanumerycznych, np. KNS) |
| color | string | Nie | Kolor roli w formacie hex (domyślnie #5865F2) |
Uprawnienia: Administrator serwera, Management Roles, lub R5 w dowolnym aliansie
Przykład: /alliance create name:Knights tag:KNS color:#E74C3C
Sukces: Tworzy alians, rolę Discord [KNS] Knights, dodaje twórcę jako R5, przypisuje rolę, opcjonalnie dodaje do Reaction Roles
Błędy:
- Brak uprawnień
- Nieprawidłowa nazwa (niedozwolone znaki lub długość)
- Nieprawidłowy tag (nie 1–5 alfanumerycznych)
- Nieprawidłowy format koloru (nie
#XXXXXX) - Osiągnięto limit aliansów (domyślnie 10)
- Alians o tej nazwie już istnieje
- Tag już zajęty przez inny alians
- Bot nie może utworzyć roli (brak uprawnień
manage_roles)
Użytkownik wpisuje KNS, system przechowuje jako [KNS] i tworzy rolę [KNS] Knights.
/alliance delete
Usuwa alians — kasuje rekord z bazy, usuwa rolę Discord ze wszystkich członków, czyści powiązania.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| name | string | Tak | Nazwa aliansu do usunięcia |
Uprawnienia: Administrator serwera (tylko)
Przykład: /alliance delete name:Knights
Sukces: Usuwa alians, rolę, członków z bazy, aktualizuje Reaction Roles
Błędy:
- Brak uprawnień administratora
- Alians nie znaleziony
- Błąd bazy danych
/alliance invite
Zaprasza użytkownika do Twojego aliansu. Dodaje go jako R1 i przypisuje rolę Discord.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| member | Member | Tak | Użytkownik do zaproszenia |
Uprawnienia: R4 lub R5 w swoim aliansie
Przykład: /alliance invite member:@NowyGracz
Sukces: Dodaje członka jako R1, przypisuje rolę aliansu
Błędy:
- Nie jesteś w aliansie
- Masz rangę poniżej R4
- Cel jest już w Twoim aliansie
- Cel jest w innym aliansie (musi najpierw opuścić)
- Alians osiągnął limit członków (domyślnie 50)
/alliance kick
Wyrzuca członka z Twojego aliansu. Usuwa go z bazy i zdejmuje rolę Discord.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| member | Member | Tak | Członek do wyrzucenia |
Uprawnienia: R4 lub R5 w swoim aliansie
Przykład: /alliance kick member:@NieaktywnyGracz
Sukces: Usuwa członka, zdejmuje rolę
Błędy:
- Nie jesteś w aliansie
- Masz rangę poniżej R4
- Cel nie jest w Twoim aliansie
- R4 próbuje wyrzucić R4 lub wyżej (niedozwolone)
- Próba wyrzucenia samego siebie (użyj
/alliance leave)
R4 może wyrzucić tylko członków o randze R1–R3. R5 może wyrzucić wszystkich oprócz siebie.
/alliance leave
Opuszcza Twój aktualny alians. Zdejmuje rolę Discord.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| (brak) | — | — | — |
Uprawnienia: Każdy członek aliansu (oprócz R5)
Przykład: /alliance leave
Sukces: Usuwa Cię z aliansu, zdejmuje rolę
Błędy:
- Nie jesteś w aliansie
- Jesteś R5 — musisz najpierw przekazać przywództwo (
/alliance transfer)
/alliance promote
Awansuje członka aliansu o jedną rangę (max do R4).
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| member | Member | Tak | Członek do awansowania |
Uprawnienia: R5 (tylko lider)
Przykład: /alliance promote member:@AktywnyGracz
Sukces: Zwiększa rangę o 1 (np. R2 → R3)
Błędy:
- Nie jesteś w aliansie
- Nie masz rangi R5
- Cel nie jest w Twoim aliansie
- Cel jest już R4 (maksymalny awans — R5 można tylko przekazać)
/alliance demote
Degraduje członka aliansu o jedną rangę (min R1).
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| member | Member | Tak | Członek do degradacji |
Uprawnienia: R5 (tylko lider)
Przykład: /alliance demote member:@Gracz
Sukces: Zmniejsza rangę o 1 (np. R3 → R2)
Błędy:
- Nie jesteś w aliansie
- Nie masz rangi R5
- Cel nie jest w Twoim aliansie
- Cel jest już R1 (najniższa ranga)
/alliance transfer
Przekazuje przywództwo (R5) innemu członkowi aliansu. Ty stajesz się R4.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| member | Member | Tak | Nowy lider |
Uprawnienia: R5 (tylko aktualny lider)
Przykład: /alliance transfer member:@NowyLider
Sukces: Cel → R5, Ty → R4 (transakcja atomowa)
Błędy:
- Nie jesteś w aliansie
- Nie masz rangi R5
- Próba przekazania samemu sobie
- Cel nie jest w Twoim aliansie
/alliance info
Wyświetla szczegóły aliansu: listę członków pogrupowaną wg rang, datę utworzenia, rolę.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| name | string | Nie | Nazwa aliansu (jeśli puste — pokazuje Twój alians) |
Uprawnienia: Każdy (Everyone)
Przykład: /alliance info lub /alliance info name:Knights
Sukces: Embed z danymi aliansu (kolor, data, rola, lista członków R5→R1)
Błędy:
- Nie podano nazwy i nie jesteś w żadnym aliansie
- Alians nie znaleziony
/alliance list
Wyświetla listę wszystkich aktywnych aliansów na serwerze.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| (brak) | — | — | — |
Uprawnienia: Każdy (Everyone)
Przykład: /alliance list
Sukces: Embed z listą aliansów (nazwa, liczba członków, lider)
Błędy:
- Brak aliansów na serwerze (informacja)
Automatyczne zachowania
Auto-sukcesja
Gdy lider (R5) opuści serwer:
- Jeśli są inni członkowie → najwyższy rangą (potem najdłużej w aliansie) automatycznie zostaje R5
- Jeśli był jedynym członkiem → alians jest oznaczany jako nieaktywny
Integracja z Reaction Roles
Jeśli auto_reaction_role jest włączone w konfiguracji:
- Tworzenie aliansu → rola dodawana do panelu Reaction Roles
- Usuwanie aliansu → rola usuwana z panelu
- Dodanie roli przez Reaction Role → automatyczne dołączenie do aliansu jako R1
- Usunięcie roli → automatyczne opuszczenie aliansu
- Próba dołączenia do drugiego aliansu przez Reaction Role → rola jest automatycznie zdejmowana (odrzucenie)
Opuszczenie serwera
Gdy członek aliansu opuści serwer, jest automatycznie usuwany z aliansu. Jeśli był R5, uruchamiana jest auto-sukcesja.
Konfiguracja
| Opcja | Opis | Domyślna wartość |
|---|---|---|
max_alliances | Maksymalna liczba aliansów na serwerze | 10 |
max_members | Maksymalna liczba członków w aliansie | 50 |
auto_reaction_role | Integracja z panelem Reaction Roles | false |
reaction_role_index | Indeks panelu RR do synchronizacji | null (pierwszy) |
management_roles | Role mogące tworzyć/zarządzać aliansami | brak |