Notatki operatora
ViaVersion: jeden serwer Minecraft dla wielu wersji klienta
Praktyczny przewodnik po ViaVersion: jak jeden serwer wpuszcza graczy z różnych wersji klienta, czym różni się od ViaBackwards i ViaRewind, gdzie go instalować na Paperze, a gdzie na proxy, i dlaczego czasem ktoś dalej nie może wejść. Z perspektywy kogoś, kto już raz tłumaczył graczom, że plugin nie doda im nowych bloków.
W skrócie: ViaVersion tłumaczy pakiety sieciowe, dzięki czemu gracz z nowszą wersją klienta wejdzie na starszy serwer (np. klient 1.21 na serwerze 1.20). Aby wpuścić też starsze klienty, dokładasz ViaBackwards, a dla bardzo starych wersji ViaRewind. Na pojedynczym serwerze plugin idzie do folderu plugins; na sieci z proxy instalujesz go na Velocity lub BungeeCord, nie na backendach. Pamiętaj: tłumaczy połączenie, a nie zawartość, nowych bloków i mechanik nie będzie.
Jaki problem rozwiązuje ViaVersion
Klasyczna sytuacja: prowadzisz serwer na wersji 1.20, bo na niej działają wszystkie Twoje pluginy, a połowa graczy zdążyła już zaktualizować Minecrafta do najnowszego wydania. Bez żadnego rozwiązania ci gracze dostają komunikat o niezgodności wersji i nie mogą się połączyć. Albo trzymasz serwer na starej wersji i tracisz osoby z nowym klientem, albo aktualizujesz serwer i ryzykujesz, że część dodatków przestanie działać.
ViaVersion przecina ten węzeł. Pozwala utrzymać serwer na stabilnej, sprawdzonej wersji i jednocześnie wpuścić graczy, którzy grają na nowszym kliencie. Dla operatora oznacza to spokój: aktualizujesz serwer wtedy, kiedy Ty jesteś gotowy (sprawdzone pluginy, przetestowane mapy), a nie wtedy, gdy Mojang wypuści kolejne wydanie i połowa społeczności kliknie aktualizację.
To jeden z najczęściej instalowanych pluginów na serwerach społecznościowych właśnie dlatego, że rozwiązuje codzienny ból, a nie jakiś egzotyczny przypadek. Im większa społeczność, tym pewniejsze, że gracze mają różne wersje klienta, i tym bardziej taki most między wersjami się przydaje.
Jak działa: tłumaczenie pakietów
Minecraft komunikuje się między klientem a serwerem za pomocą tak zwanego protokołu, czyli ustalonego formatu pakietów: „gracz się poruszył”, „blok się zmienił”, „otwórz ekwipunek”. Każda wersja gry ma swój numer protokołu i swój zestaw pakietów. Gdy numery się nie zgadzają, klient i serwer po prostu się nie dogadują i połączenie zostaje odrzucone.
ViaVersion wstawia się w środek tej rozmowy jako tłumacz. Kiedy gracz z nowszym klientem wysyła pakiety w swoim formacie, plugin przepisuje je na format, który rozumie starszy serwer, i odwrotnie, odpowiedzi serwera przekłada na to, czego oczekuje nowszy klient. Z punktu widzenia gracza wszystko jest przezroczyste: po prostu się łączy i gra.
Kluczowa rzecz do zapamiętania: sam ViaVersion obsługuje kierunek „nowszy klient na starszym serwerze”. To najczęstszy scenariusz, bo gracze aktualizują grę szybciej, niż operatorzy aktualizują serwery. Odwrotny kierunek, czyli starszy klient na nowszym serwerze, wymaga osobnego pluginu, o czym za chwilę.
ViaVersion vs ViaBackwards vs ViaRewind
To trio pochodzi od tego samego zespołu i działa razem, ale każdy element odpowiada za inny zakres wersji. Najprościej zapamiętać tak: ViaVersion patrzy w przyszłość, ViaBackwards w przeszłość, a ViaRewind sięga w naprawdę odległą przeszłość.
| Plugin | Co umożliwia | Kiedy go potrzebujesz |
|---|---|---|
| ViaVersion | Nowsze klienty łączą się ze starszym serwerem | Zawsze, to podstawa. Gracz na 1.21 chce wejść na serwer 1.20. |
| ViaBackwards | Starsze klienty łączą się z nowszym serwerem | Gdy serwer jest na świeżej wersji, a chcesz wpuścić graczy z poprzednich wydań. Wymaga ViaVersion. |
| ViaRewind | Bardzo stare klienty (okolice 1.8/1.7) na nowszym serwerze | Gdy zależy Ci na graczach z dawnych wersji PvP. Wymaga ViaVersion i ViaBackwards. |
W praktyce: jeśli chcesz tylko, by nowi gracze trafiali na Twój stabilny serwer, wystarczy sam ViaVersion. Jeśli prowadzisz serwer na najnowszej wersji i nie chcesz odcinać tych, którzy zostali na starszym kliencie, dokładasz ViaBackwards. ViaRewind to dodatek dla społeczności mocno przywiązanych do mechaniki ze starych wersji, np. fanów PvP z 1.8. Pluginy doinstalowujesz w tej kolejności zależności: ViaVersion jest fundamentem, pozostałe dwa go potrzebują.
Instalacja: gdzie i na czym
ViaVersion to zwykły plugin Bukkit/Bungee/Velocity, więc instalacja sprowadza się do wrzucenia pliku .jar w odpowiednie miejsce i restartu. Najważniejsze pytanie brzmi: gdzie dokładnie.
- Pojedynczy serwer Paper lub Spigot. Wrzucasz
.jardo folderupluginsna tym serwerze i restartujesz. Plugin sam wygeneruje plik konfiguracyjny przy pierwszym uruchomieniu. To najprostszy wariant i tu nic więcej nie trzeba. - Sieć serwerów z proxy Velocity. ViaVersion instalujesz na proxy Velocity, nie na poszczególnych serwerach backendowych. Proxy obsługuje wtedy tłumaczenie dla wszystkich serwerów, na które gracz przechodzi.
- Sieć serwerów z BungeeCord. Analogicznie, plugin idzie na proxy BungeeCord. Backendy zostawiasz bez ViaVersion.
Z doświadczenia: najczęstszy błąd przy sieci serwerów to wrzucenie ViaVersion i na proxy, i na backendy „na wszelki wypadek”. To prowadzi do podwójnego tłumaczenia pakietów i dziwnych rozłączeń, których nikt nie umie potem namierzyć. Reguła jest prosta: jest proxy, to plugin idzie tylko na proxy. Nie ma proxy, to idzie na serwer gry.
Podstawowa konfiguracja i sprawdzenie wersji
Dobra wiadomość jest taka, że ViaVersion działa od razu po instalacji, bez ustawiania czegokolwiek. Domyślna konfiguracja wpuszcza nowsze klienty na Twój serwer i w większości przypadków to wszystko, czego potrzebujesz.
Po starcie warto jednak zweryfikować, co plugin faktycznie obsługuje. Wpisz na konsoli lub na czacie (z uprawnieniami administratora) komendę:
/viaversion listpokaże graczy online wraz z wersją klienta, z którą się połączyli, dzięki temu od razu widzisz, kto gra na czym./viaversionbez argumentów wyświetla wersję samego pluginu i podstawowe informacje, przydatne, gdy ktoś zgłasza problem z połączeniem.
W pliku config.yml pluginu znajdziesz opcje warte uwagi, na przykład limit najstarszej dopuszczalnej wersji klienta czy drobne korekty zachowania przy konkretnych wersjach. Na start nie musisz ich ruszać. Zajrzyj tam dopiero, gdy chcesz świadomie ograniczyć zakres wpuszczanych wersji albo gdy dokumentacja konkretnego problemu odsyła Cię do danej opcji.
Ograniczenia, o których trzeba wiedzieć
ViaVersion robi jedną rzecz bardzo dobrze, ale nie jest magią. Najczęstsze nieporozumienia, które warto rozwiać, zanim gracze zaczną zadawać pytania:
- Nie dodaje nowych bloków ani mechanik. Serwer 1.20 z ViaVersion to wciąż serwer 1.20. Gracz na kliencie 1.21 nie znajdzie na nim bloków ani przedmiotów dodanych w nowszych wydaniach, bo ich tam fizycznie nie ma. Plugin tłumaczy rozmowę, a nie zawartość świata.
- Nie zamienia zawartości w obie strony. To narzędzie zgodności protokołu, nie konwerter map ani datapacków. Twoje pluginy, generacja świata i mechaniki pozostają takie, jakie daje wersja serwera.
- Możliwe drobne błędy wizualne. Gdy nowszy klient natknie się na element, którego jego wersja nie zna inaczej, niż przewiduje tłumaczenie, może to wyglądać nieco inaczej (np. zastępczy blok, lekko inny model). To zwykle kosmetyka, ale przy bardzo dużej różnicy wersji takich drobiazgów jest więcej.
- Im większa przepaść między wersjami, tym więcej kompromisów. Tłumaczenie z 1.21 na 1.20 jest niemal niewidoczne. Tłumaczenie przez kilka dużych wydań naraz daje więcej miejsc, w których coś może wyglądać lub działać odrobinę inaczej.
Typowe problemy
- Gracz dalej nie wchodzi. Sprawdź najpierw, w którą stronę próbuje się połączyć. Jeśli ma starszy klient niż serwer, sam ViaVersion nie wystarczy, potrzebujesz ViaBackwards (a dla bardzo starych wersji ViaRewind). Logi serwera zwykle precyzyjnie mówią, jakiego protokołu zabrakło.
- Zła kolejność na sieci serwerów. Plugin wrzucony na backend zamiast na proxy (albo na oba naraz) to klasyka. Na sieci z Velocity lub BungeeCord ViaVersion ma być wyłącznie na proxy.
- Nieaktualna wersja pluginu po aktualizacji Minecrafta. Gdy Mojang wypuszcza nowe wydanie, wsparcie dla niego dochodzi w nowym wydaniu ViaVersion, nie od razu. Jeśli świeżo zaktualizowani gracze nie mogą wejść, najpierw zaktualizuj plugin do najnowszej wersji i zrestartuj serwer.
- Konflikt z innymi pluginami pracującymi na pakietach. Niektóre dodatki anty-cheat lub mocno ingerujące w sieć potrafią kolidować z tłumaczeniem. Jeśli problemy zaczęły się po dołożeniu konkretnego pluginu, wyłącz go testowo i sprawdź, czy połączenia wracają.
Gdzie to się spina z hostingiem
ViaVersion sam w sobie jest darmowy i lekki, ale żeby go zainstalować, musisz mieć serwer, na którym wolno dorzucać pluginy i restartować go po aktualizacjach. Na zamkniętych „pudełkach” bez dostępu do folderu plugins ani konsoli ten manewr odpada. Jeśli zależy Ci na serwerze Paper z możliwością instalowania własnych dodatków i prostego zarządzania wersją, sprawdź zarządzany hosting Minecrafta Java z obsługą pluginów w Supercraft, masz tam dostęp do plików i konsoli, więc wgranie ViaVersion sprowadza się do wrzucenia .jar i restartu.
Najczęstsze pytania
Czy ViaVersion pozwala grać na każdej wersji klienta?
Nie na każdej, ale na bardzo szerokim zakresie. Sam ViaVersion obsługuje klienty nowsze od serwera; ViaBackwards dokłada starsze, a ViaRewind te bardzo stare. Zawsze sprawdź aktualną listę wspieranych wersji w opisie pluginu.
Na czym instalować ViaVersion: na serwerze gry czy na proxy?
Na pojedynczym Paperze lub Spigocie wrzucasz go do folderu plugins tego serwera. Na sieci z Velocity lub BungeeCord instalujesz go wyłącznie na proxy, nigdy na obu warstwach naraz.
Czy ViaVersion da mi nowe bloki i mechaniki na starym serwerze?
Nie. Plugin tłumaczy pakiety sieciowe, a nie zawartość gry. Serwer 1.20 zostaje serwerem 1.20, gracz z nowszym klientem zobaczy ten sam świat, czasem z drobnymi różnicami wizualnymi.
Dlaczego gracz dalej nie może wejść mimo zainstalowanego ViaVersion?
Najczęściej przez nieaktualny plugin po aktualizacji Minecrafta, brak ViaBackwards dla starszego klienta albo plugin wgrany na backend zamiast na proxy. Logi serwera zwykle wskazują, jakiego protokołu zabrakło.
Czy ViaVersion spowalnia serwer?
Tłumaczenie pakietów kosztuje trochę CPU i pamięci, ale przy typowym serwerze społecznościowym narzut jest niewielki. Większy wpływ widać dopiero przy bardzo wielu graczach na starych wersjach klienta.
Powiązane
- Zarządzany serwer Minecraft Java z obsługą pluginów (ViaVersion, Paper) i dostępem do plików: hosting Minecrafta Java.
- LuckPerms: uprawnienia i rangi na serwerze Minecraft
- WorldGuard: ochrona regionów i flagi na serwerze Minecraft
- Hosting serwera Minecraft: jak wybrać i ile to kosztuje