Corestone

Integracje

AdminControl współpracuje z innymi pluginami, gdy są zainstalowane. Niczego nie trzeba włączać: integracja startuje razem z serwerem, gdy jej plugin jest na miejscu, a gdy go nie ma, AdminControl działa jak dotąd.

Placeholdery dla innych pluginów

Z zainstalowanym PlaceholderAPI tablice wyników, listy graczy (tab), hologramy i pluginy czatu mogą pokazywać dane AdminControl. Na Folii i na Minecrafcie 26.x wymaga PlaceholderAPI 2.12.3 lub nowszego.

Placeholder Wartość
%admincontrol_muted% true albo false
%admincontrol_muted_text% „tak” albo „nie” w języku serwera
%admincontrol_mute_remaining% Sekundy do końca wyciszenia; -1 przy wyciszeniu na stałe, 0, gdy gracz nie jest wyciszony
%admincontrol_mute_remaining_text% Na przykład 1h 20m albo „na zawsze”; puste, gdy gracz nie jest wyciszony
%admincontrol_mute_reason% Powód wyciszenia, bez kodów kolorów; puste, gdy gracz nie jest wyciszony
%admincontrol_warnings% Aktywne ostrzeżenia gracza
%admincontrol_punishments% Każda kara, jaką gracz miał (wszystkie rodzaje, także zdjęte)
%admincontrol_open_reports% Zgłoszenia jeszcze nierozpatrzone; w sieci z całej sieci
%admincontrol_staff_online% Gracze online na tym serwerze z admincontrol.staff (domyślnie op), nie w vanish
%admincontrol_network_online% Gracze online w całej sieci; na pojedynczym serwerze na tym serwerze
%admincontrol_server_online_<name>% Gracze online na serwerze o tym server-name (wielkość liter bez znaczenia); 0 dla nieznanego serwera
%admincontrol_server_name% server-name tego serwera
  • Wartości gracza (pierwsze siedem) wymagają gracza online. Bez niego, na przykład w hologramie, który pokazuje wszystkim ten sam tekst, są puste. Zaraz po wejściu gracza wartości wyciszenia są puste, dopóki AdminControl nie odczyta wyciszenia: placeholdery służą do pokazywania, a nie do decydowania, czy gracz może pisać.
  • Domyślnie wyłączone: mute_reason, punishments i open_reports są puste, dopóki nie ustawisz placeholders.sensitive: true w config.yml (potem /ac reload). Może je przeczytać każdy, komu plugin je pokazuje: publiczna tablica wyników pokazuje wszystkim liczbę otwartych zgłoszeń, a plugin, który wypełnia placeholdery w tym, co wpisują gracze (czat, tabliczki, nazwy przedmiotów), razem z rozszerzeniem ParseOther pozwala graczowi odczytać powód wyciszenia innego gracza.
  • Vanish: gracze ukryci przez SuperVanish, PremiumVanish albo EssentialsX (znacznik vanished) nie liczą się ani do staff_online, ani do graczy online tego serwera, więc tablica wyników nie zdradzi ukrytego moderatora. Gracze w vanish na innych serwerach sieci są tam liczeni.
  • Świeżość: wyciszenia są odczytywane od razu. Ostrzeżenia, kary i zgłoszenia odświeżają się co 30 sekund, a własne liczby gracza zaraz po tym, jak dostanie albo straci karę, na dowolnym serwerze sieci. Liczby sieci idą za listą serwerów panelu.
  • Nieznane nazwy zostają w wpisanej postaci, więc literówka będzie widoczna w grze.

Przykłady:

Warnings: %admincontrol_warnings%

Z pluginem, który pokazuje linię tylko wtedy, gdy placeholder ma daną wartość (warunek), porównaj %admincontrol_muted% z true, żeby pokazać „Jesteś wyciszony” tylko wyciszonym graczom.

Prefiksy i grupy w panelu

Z Vault i pluginem uprawnień albo czatu za nim panel pokazuje prefiks i główną grupę każdego gracza:

  • prefiks przed nickiem na liście graczy, liście graczy online i na czacie na żywo;
  • prefiks i grupę w profilu gracza.

Bez Vault AdminControl czyta je bezpośrednio z LuckPerms. Prefiksy są odczytywane, gdy gracz wchodzi, a potem co minutę, i pokazywane jako zwykły tekst: kody kolorów są pomijane. Ostatni znany prefiks i grupa zostają przy graczu, więc panel pokazuje je także, gdy gracz jest offline. W sieci każdy serwer czyta swoich graczy.

Geyser i Floodgate

Gracze Bedrock, którzy wchodzą przez Geyser i Floodgate, dostają UUID zaczynający się od 00000000-0000-0000-. AdminControl rozpoznaje ich po nim, także na serwerach bez Floodgate, na proxy i przy graczach dodanych importem:

  • Oznaczenie i filtr: znaczek „Bedrock” przy nicku na liście graczy, w profilu i na czacie na żywo oraz filtr „Bedrock” na liście graczy.
  • Głowy: panel pokazuje skórkę gracza Bedrock z API GeyserMC (bedrock.geysermc-skins, domyślnie włączone; zobacz Prywatność).
  • Połączone konta: gdy gracz połączy w Floodgate konto Bedrock z kontem Java, serwer Paper z Floodgate zapisuje to połączenie, gdy gracz się loguje. W sieci zainstaluj Floodgate także na serwerach Paper, nie tylko na proxy: AdminControl czyta połączenia na serwerach Paper. Od tej chwili ban, kick albo wyciszenie któregokolwiek konta obejmuje oba, na każdym serwerze; proxy nie wpuszcza żadnego z nich przy banie. Zdjęcie kary zwalnia oba: /unban i /unmute któregokolwiek konta zdejmują też bana albo wyciszenie drugiego. Filtry i znaczki „Zbanowany” i „Wyciszony” na liście graczy uwzględniają połączone konto. Ostrzeżenia, historia, notatki i sesje zostają przy każdym koncie osobno. Profil pokazuje połączone konto, z linkiem do jego profilu, jeśli grało na serwerze, tym, którzy mogą widzieć adresy IP graczy (players.view_ip): podaje ono konto Xbox gracza.
  • Rozłączenie kont w Floodgate (albo połączenie konta Bedrock z innym kontem Java) kończy wspólne kary, gdy gracz znów się zaloguje: każde konto zachowuje wtedy tylko własne. Ukarz oba konta, gdy gracz ma zostać poza serwerem na każdym z nich.
  • Gdy połączenie trafi do bazy dopiero po sprawdzeniu logowania gracza (wolna baza), ban i wyciszenie są sprawdzane ponownie, gdy tylko gracz wejdzie.

Geyser bez Floodgate (tryb offline) daje graczom Bedrock zwykłe UUID offline: nie są rozpoznawani jako Bedrock.

EssentialsX

Z zainstalowanym EssentialsX AdminControl jest jedynym źródłem kar.

  • Jego komendy kar działają jako komendy AdminControl (essentials.take-over-commands: true, domyślnie włączone): /ban, /tempban, /banip, /tempbanip, /unban, /kick, /mute i /silence z Essentials, także jako /essentials:ban albo własne aliasy Essentials jak /eban, wpisane przez gracza, w konsoli, przez RCON albo w konsoli panelu, wykonują komendę AdminControl z tymi samymi argumentami, z uprawnieniami i limitami ról AdminControl (bloki poleceń zachowują komendy Essentials). Essentials ich nie dostaje. /mute <player> przełącza jak w Essentials: gracz, który jest teraz wyciszony (także przez połączone konto Bedrock), zostaje odciszony; /mute <player> <time> [reason] wycisza na podany czas. Komenda bez powodu dostaje „No reason given”. Czasy są takie jak w AdminControl (10m, 2h, 7d, 4w, łączone jak 1d12h); czas, którego AdminControl nie zna (1mo), daje opis użycia komendy i żadnej kary. /banip i /unbanip z adresem IP, inne komendy Essentials (/jail, /kickall) i lista banów serwera (/minecraft:ban) zostają przy Essentials. Ustaw false, żeby zostawić komendy Essentials.

  • Wyciszenia w obie strony, AdminControl najpierw: wyciszenie AdminControl (tutaj, z sieci albo przez połączone konto) jest ustawiane także w Essentials, z tym samym końcem, dla graczy na tym serwerze, więc własne /msg, /mail i /me Essentials też przestają działać; zdjęcie go zdejmuje je i tam. Gdy gracz wchodzi, Essentials jest dopasowywany. Wyciszenie nałożone w Essentials (jego /mute przy wyłączonym przejmowaniu albo inny plugin przez niego) staje się karą AdminControl, widoczną w panelu i w sieci, rozstrzyganą w tle:

    • nałożone przez gracza: z rolą konta panelu tego gracza i jej limitami, tak jakby wyciszał w panelu (jego nick jest autorem). Rola, która nie może wyciszać, wyciszenie dłuższe niż jej limit albo cel z ekipy jest odrzucane. Gracz bez konta panelu: wyciszenie zostaje tylko w Essentials, na tym serwerze, a AdminControl go nie zapisuje (wejście gracza go nie rusza; zdjęcie w Essentials je kończy);
    • nałożone bez gracza (konsola, inny plugin): jako konsola, przez „EssentialsX (kto je nałożył)”. Ekipy z kontem panelu (ani ich połączonego konta) nie da się w ten sposób wyciszyć.

    Wyciszający dostaje informację, jak to się skończyło. Zdjęcie wyciszenia w Essentials zdejmuje je tutaj tylko wtedy, gdy pochodziło z Essentials; wyciszenie AdminControl zostaje, a próbujący dostaje informację, żeby zdjąć je w AdminControl.

  • Gdy API Essentials zawiedzie (aktualizacja Essentials, której AdminControl jeszcze nie zna), część, której to dotyczy, zatrzymuje się do restartu, a log serwera mówi która: synchronizacja wyciszeń albo nick, AFK i więzienie. Komendy kar dalej są przejmowane (po nazwach, bez pytania Essentials), więc /ban moderatora nigdy nie wraca do własnego bana Essentials. Status essentials znika z /ac version.

  • Nick, AFK i więzienie: lista graczy, profil i czat na żywo pokazują nick gracza z Essentials; lista i profil pokazują „AFK” (gdy gracz jest online, także na innym serwerze sieci) i „Więzienie” z nazwą więzienia i końcem kary. Wyszukiwanie znajduje graczy także po nicku. Nick jest pokazywany jako zwykły tekst (bez kolorów). AFK jest zapisywane, gdy się zmienia, kilka sekund później.

DiscordSRV

Z zainstalowanym DiscordSRV:

  • Powiadomienia na jego kanałach: w Ustawieniach → Integracje każda grupa (kary, stan serwera, zgłoszenia) idzie nigdzie, na webhook albo na kanał DiscordSRV: nazwę kanału z konfiguracji DiscordSRV (panel ją podpowiada) albo ID kanału. ID kanału musi wskazywać kanał serwera Discord DiscordSRV (jego głównej gildii): kanał innego serwera, na którym jest bot, nie dostanie nic, a log serwera o tym mówi. Długie teksty są przycinane do limitów Discorda. „Testuj” wysyła jedną wiadomość testową; można go użyć raz na 10 sekund na konto panelu. Wiadomości są takie same jak przez webhook, wysyła je bot DiscordSRV. „Wysyłaj powiadomienia na Discorda” włącza albo wyłącza wszystkie grupy. Karę albo zgłoszenie wysyła serwer, na którym się wydarzyły, więc w sieci daj DiscordSRV każdemu serwerowi albo użyj webhooka; serwer bez DiscordSRV pokazuje to w ustawieniach.
  • Połączone konta Discord: profil pokazuje konto Discord, które gracz połączył w DiscordSRV, tym, którzy mogą widzieć adresy IP graczy (players.view_ip).
  • Czat: wiadomość wyciszonego gracza nie trafia na Discorda. Wiadomość na połączonym kanale od użytkownika Discorda, którego połączone konto Minecraft (albo jego połączone konto Bedrock) jest wyciszone lub zbanowane, nie trafia do gry; bot DiscordSRV mówi mu w prywatnej wiadomości dlaczego, najwyżej raz na 5 minut (powód jest pokazany jako zwykły tekst). Gracz na tym serwerze jest sprawdzany z pamięci wyciszeń AdminControl; pozostali z bazy, z zapamiętaniem na 30 sekund. Gdy baza nie odpowie w ciągu 2 sekund, taka wiadomość jest wstrzymywana. Użytkownicy bez połączonego konta nie są sprawdzani, więc ukarany gracz mógłby pisać z niepołączonego konta Discord: ustaw DiscordChatChannelRequireLinkedAccount: true w config.yml DiscordSRV, żeby do gry docierały tylko połączone konta, i dodaj discord do punishments.mute-blocked-commands w config.yml AdminControl, żeby wyciszony gracz nie mógł go rozłączyć w grze (/discord unlink) i obejść sprawdzania.
  • Gdy API DiscordSRV zawiedzie, część, której to dotyczy, zatrzymuje się do restartu, a log serwera mówi która: powiadomienia, sprawdzanie czatu albo połączone konta. Powiadomienie, którego nie dało się wysłać (uprawnienia bota na kanale), daje tylko ostrzeżenie. Status discordsrv znika z /ac version. Nawet gdy wyszukiwanie przy sprawdzaniu czatu nie działa, wyciszony albo zbanowany gracz nie dostanie się do czatu z Discorda: odpowiadają wtedy połączone konta zapisane przez AdminControl.

CoreProtect

Z zainstalowanym CoreProtect 24.1 lub nowszym (jego API w wersji 12) i włączonym API (api-enabled: true w jego config.yml), na jednym serwerze albo na kilku serwerach sieci. W sieci każdy serwer potrzebuje własnej bazy CoreProtect: gdy serwery dzielą jedną bazę MySQL, nadaj każdemu inny table-prefix w config.yml CoreProtect. Inaczej każdy serwer czyta (i pokazuje) te same wpisy, a cofnięcie na jednym serwerze odtwarza też to, co zapisano na innym, w jego świecie o tej samej nazwie.

  • Zakładka CoreProtect w profilu gracza (players.view): co gracz robił, od najnowszych: rozbite i postawione bloki, skrzynie (co włożył albo wyjął), interakcje, zabójstwa, przedmioty, ekwipunek, wejścia i wyjścia, zmiany nicku, czat, komendy i tabliczki, z czasem, serwerem, światem i miejscem. Czat i komendy wymagają też chat.view, tak samo jak dziennik czatu AdminControl; wiadomości prywatne (komendy z chat.private-commands i chat.reply-commands) wymagają też chat.private. Hasła i kody komend logowania (/login, /register, /changepassword, /ac link i podobne) są maskowane jako *** na serwerze, który je odczytuje. Filtry: okres (1 godzina, 24 godziny, 7 dni albo 30 dni, najwyżej 30 dni), rodzaj i serwer; 50 wpisów naraz, „Pokaż więcej” dla kolejnych. Wpisy już cofnięte są oznaczone. Dawne nicki gracza są wypisane wyżej. Zakładki nie ma, dopóki żaden serwer nie ma CoreProtect.
  • Cofanie i przywracanie zmian gracza (players.rollback): w zakładce „Cofnij zmiany” albo „Przywróć zmiany”, okres w limicie roli (Zespół → Role, „Najdłuższe cofnięcie”; rola Admin ma 7 dni, Moderator i Helper nie mają tego uprawnienia), zakres (wszystko, co cofa CoreProtect: bloki, skrzynie, przedmioty i byty; tylko bloki; tylko skrzynie i przedmioty) i serwery. „Sprawdź” najpierw liczy zmiany na każdym serwerze (do 100 000); przycisk potem je cofa albo przywraca. Ekipy z kontem panelu o równej lub wyższej roli nie da się cofnąć, tak jak przy karach. Naraz trwa jedno cofanie albo przywracanie danego gracza. Lista pod wpisami pokazuje stan każdego z nich na każdym serwerze, a dziennik zdarzeń zapisuje, kto to zrobił i jak skończyło się na każdym serwerze.
  • Bany, które cofają zmiany: okno bana ma „Cofnij jego zmiany” (domyślnie nic; z players.rollback); szablon bana może mieć własne okno. W grze: /ac ban <player> -r 24h <reason> (po czasie przy /ac tempban), także przez /ban z EssentialsX, gdy jego komendy są przejmowane. Okno ponad limit roli odrzuca cały ban: nic nie jest zapisywane. Przy zdejmowaniu takiego bana okno (i /ac unban <player> -restore) może przywrócić to, co zostało cofnięte. CoreProtect liczy wstecz od teraz, więc przywracanie obejmuje czas od bana plus okno cofania: przywracane jest tylko to, co jest oznaczone jako cofnięte, ale w tym szerszym oknie przywrócone zostaną też zmiany cofnięte w międzyczasie przez kogoś innego.
  • W sieci każdy serwer czyta swój CoreProtect: panel pyta każdy serwer z CoreProtect i łączy wpisy; serwer, który nie odpowie w ciągu 10 sekund, jest wymieniony nad listą i pytany ponownie przy „Pokaż więcej”. Cofnięcie dla wyłączonego serwera czeka do doby i wykonuje się, gdy serwer wystartuje; po dobie kończy się jako „nie wystartowało w ciągu doby”. Serwer bez CoreProtect dalej pokazuje i cofa zmiany na pozostałych.
  • Powiadomienia: cofnięcie albo przywrócenie, które zakończyło się na każdym serwerze, trafia na Discorda razem z grupą kar (webhook albo kanał DiscordSRV).
  • Gdy API CoreProtect zawiedzie (aktualizacja, której AdminControl jeszcze nie zna), część, której to dotyczy, zatrzymuje się do restartu, a log serwera mówi która: odczyt wpisów (serwer pokazuje się wtedy jako nieodpowiadający) albo cofanie (status coreprotect znika z /ac version, a serwer znika z listy sieci do cofania).
  • Okno ustawione w szablonie bana jest stosowane, gdy się da: członek ekipy bez players.rollback, okno ponad jego limit, trwające cofanie tego gracza albo brak CoreProtect dają ban bez cofania, a dziennik zdarzeń mówi dlaczego. Okno wybrane w oknie bana albo przez -r w takiej sytuacji odrzuca bana.
  • Serwer, który był wyłączony, wykonuje swoją część cofnięcia za czas od zlecenia plus okno, więc obejmuje te same zmiany; przywracanie przy zdjęciu bana jest ograniczone oknem cofnięcia, które odwraca, a nie czasem od bana. Starszy CoreProtect nie jest w ogóle używany, a log mówi, że potrzebny jest 24.1 lub nowszy.
  • Cofnięcie cofa tylko to, co zapisał CoreProtect. CoreProtect zapisuje wpisy chwilę po zdarzeniu, a po restarcie może je przez jakiś czas wstrzymywać (do wygaśnięcia blokady bazy z poprzedniego uruchomienia): zmian zrobionych tuż przed zatrzymaniem serwera albo zaraz po jego ponownym starcie może nie być w samym CoreProtect, i wtedy cofnięcie znajduje mniej zmian albo żadnej.

Stan integracji

/ac version wypisuje integracje aktywne na tym serwerze, na przykład Integrations: luckperms, placeholderapi, vault. W sieci lista serwerów na pulpicie panelu pokazuje je dla każdego serwera.

Integracja Widoczna, gdy
coreprotect CoreProtect 24.1+ jest zainstalowany z włączonym API: tutaj czytane są jego wpisy i wykonywane cofnięcia.
discordsrv DiscordSRV jest zainstalowany: jego kanały mogą dostawać powiadomienia, czat z Discorda jest sprawdzany.
essentials EssentialsX jest zainstalowany: jego komendy kar i wyciszenia idą przez AdminControl.
floodgate Floodgate jest zainstalowany i jego API odpowiada: połączone konta są zapisywane.
placeholderapi Placeholdery %admincontrol_...% są zarejestrowane.
vault Prefiksy i grupy pochodzą z Vault.
luckperms Synchronizacja grup LuckPerms może działać (Ustawienia → Integracje) albo prefiksy i grupy pochodzą z LuckPerms.

PlaceholderAPI w ogłoszeniach i synchronizację grup LuckPerms opisują Funkcje.