Poradniki / Serwery i wydajność
Whitelist, ban i op: komendy serwera, które działają inaczej, niż się spodziewasz
Whitelist nie wyrzuca graczy już będących online, /ban potrzebuje powodu, by być przydatny, a poziom op ma większe znaczenie niż lista op. Szczegóły, które gryzą właścicieli serwerów.
Komendy administracyjne wyglądają prosto i w większości takie są. Problemy wynikają z trzech zachowań, które nie są oczywiste na podstawie samej składni.
Whitelist nie usuwa tych, którzy już są w grze — chyba że mu każesz
/whitelist on zaczyna egzekwować listę dla nowych logowań. To, czy gracze już połączeni zostaną wyrzuceni, zależy od jednej linii w server.properties:
enforce-whitelist=true
Domyślnie jest to false i dopóki tak pozostaje, gracze spoza listy pozostają połączeni zarówno przez /whitelist on, jak i /whitelist reload. Ustaw to na true, a on, reload i remove wyrzucą wszystkich połączonych graczy, których nie ma na liście. Włączenie whitelisty przy wyłączonym egzekwowaniu i odejście od komputera to klasyczny błąd.
Jeszcze dwa szczegóły:
/whitelist add <name>rozwiązuje nazwę poprzez API Mojang na serwerze w trybie online. Na serwerze w trybie offline zamiast tego dodaje do whitelisty offline UUID tej nazwy, więc ręczna edycjawhitelist.jsonnie jest potrzebna.- Operatorzy domyślnie omijają whitelistę, dlatego twoje własne konto nigdy nie potwierdzi, że whitelist działa. Przetestuj na drugim koncie.
/ban chce powodu, a /ban-ip to inna lista
/ban <player> [reason]
/ban-ip <address|player> [reason]
Powód jest opcjonalny, a jego pominięcie to błąd — to właśnie go widzi zbanowany gracz i to czyta przyszły ty w /banlist, próbując sobie przypomnieć, o co chodziło. Bez niego wpis mówi po prostu „Banned by an operator".
/ban i /ban-ip zapisują do osobnych plików (banned-players.json, banned-ips.json). Ułaskawienie jednego nie czyści drugiego — to zwykle powód, dla którego „ułaskawiony" gracz wciąż nie może się połączyć. Użyj zarówno /pardon, jak i /pardon-ip.
Poziomy op, nie tylko lista op
/op domyślnie przyznaje poziom 4, czyli pełny dostęp, w tym /stop. Te cztery poziomy są prawdziwe i można je ustawić w server.properties poprzez op-permission-level:
| Poziom | Uprawnienia |
|---|---|
| 1 | Omijanie ochrony spawnu |
| 2 | Większość komend cheatów, bloki komend |
| 3 | Zarządzanie graczami — kick, ban, op |
| 4 | Wszystko, w tym /stop |
Moderatorzy, którzy potrzebują /kick i /ban, chcą poziomu 3, nie 4. Rozdawanie poziomu 4 każdemu, kto pomaga moderować, to sposób, w jaki serwery zostają wyczyszczone przez przejęte konto.
function-permission-level jest osobne i kontroluje, jakie funkcje datapacków mogą być uruchamiane — pozostawienie go na 2, gdy poziom op wynosi 4, to częste źródło sytuacji „moja funkcja nic nie robi".
Komendy list
/banlist players, /banlist ips i samo /banlist istnieją i wypisują do konsoli, a nie na czacie, jeśli uruchomisz je z terminala serwera. /whitelist list pokazuje tylko nazwy, nie UUID — czytaj whitelist.json, gdy musisz sprawdzić tożsamość.
Zbuduj którąkolwiek z nich z argumentami w odpowiedniej kolejności w Kreatorze komend administracyjnych serwera, który obsługuje ban, ban-ip, pardon, kick, op, deop i whitelist w jednym formularzu.