Przejdź do głównej zawartości

Alliances

System zarządzania aliansami dla społeczności Dark War Survival. Komendy zgrupowane pod prefixem /alliance.

Hierarchia rang

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.

ParametrTypWymaganyOpis
namestringTakNazwa aliansu (2–32 znaki: litery, cyfry, spacje, myślniki)
tagstringTakKrótki tag (1–5 znaków alfanumerycznych, np. KNS)
colorstringNieKolor 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)
Format tagu

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.

ParametrTypWymaganyOpis
namestringTakNazwa 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.

ParametrTypWymaganyOpis
memberMemberTakUż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.

ParametrTypWymaganyOpis
memberMemberTakCzł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)
Ograniczenia R4

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.

ParametrTypWymaganyOpis
(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).

ParametrTypWymaganyOpis
memberMemberTakCzł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).

ParametrTypWymaganyOpis
memberMemberTakCzł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.

ParametrTypWymaganyOpis
memberMemberTakNowy 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ę.

ParametrTypWymaganyOpis
namestringNieNazwa 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.

ParametrTypWymaganyOpis
(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

OpcjaOpisDomyślna wartość
max_alliancesMaksymalna liczba aliansów na serwerze10
max_membersMaksymalna liczba członków w aliansie50
auto_reaction_roleIntegracja z panelem Reaction Rolesfalse
reaction_role_indexIndeks panelu RR do synchronizacjinull (pierwszy)
management_rolesRole mogące tworzyć/zarządzać aliansamibrak