Poradnik
Jak zaktualizować plugin do nowej wersji Minecrafta
Zaktualizowano: 18 października 2026
Gdy twój serwer przechodzi na nową wersję Minecrafta, wiele pluginów działa dalej bez zmian, bo API Bukkit jest stabilne. Inne przestają się ładować albo psują się w drobnych miejscach. Jeśli autor nie zaktualizował pluginu, a ty masz jego kod źródłowy, możesz zaktualizować go sam: oto co się zmienia i w jakiej kolejności.
Opisz, jak ma działać w nowej wersji.
Wygeneruj to w CodexeKrok po kroku
1.Najpierw wypróbuj stary plik .jar
Wrzuć go na serwer testowy w nowej wersji i przeczytaj konsolę. Jeśli się ładuje i działa, być może nie musisz niczego zmieniać.
2.Zmień zależność API
W
pom.xmllubbuild.gradleustawpaper-apialbospigot-apina nową wersję.3.Zaktualizuj api-version i Javę
Ustaw
api-versionwplugin.yml(na przykład'1.21') i kompiluj pod Javę, której wymaga nowa wersja: Java 17 przed 1.20.5, Java 21 od 1.20.5, Java 25 dla 26.x.4.Napraw to, co się już nie kompiluje
Zbuduj i przejdź przez błędy: zmienione nazwy materiałów, usunięte metody, zmienione klasy zdarzeń. Kompilator wypisuje je z plikiem i linią.
5.Zaktualizuj zależności
Pluginy, z których korzysta twój plugin (Vault, PlaceholderAPI, ProtocolLib, WorldGuard), też potrzebują wersji obsługujących nową wersję Minecrafta, zarówno w pliku builda, jak i na serwerze.
6.Przetestuj na nowej wersji
Załaduj go na serwerze w nowej wersji z tymi samymi pluginami i wypróbuj każdą komendę i funkcję, a nie tylko start.
Co zwykle się psuje
- Nazwy materiałów i enumów: aktualizacja 1.13 zmieniła nazwy większości przedmiotów i bloków; późniejsze wersje część z nich dodają, zmieniają lub usuwają. Kod, który używa starych nazw lub numerycznych identyfikatorów, nie działa.
- Usunięte przestarzałe metody: metody oznaczone jako przestarzałe przez kilka wersji w końcu znikają.
- Dane przedmiotów: od 1.20.5 NBT przedmiotów zastąpiono komponentami danych. Pluginy, które bezpośrednio edytują NBT przedmiotów, wymagają przepisania tej części; zwykłe API
ItemMetadziała dalej. - NMS i refleksja: kod, który używa wewnętrznych klas serwera, psuje się prawie w każdej wersji. Zastąp go API, gdzie to możliwe, albo biblioteką taką jak ProtocolLib.
- Wersje bibliotek: spakowane biblioteki zbudowane pod starszą Javę mogą nie działać na nowej.
Aktualizacja o wiele wersji naraz
Przejście z 1.8 lub 1.12 na 1.21 to bardziej przepisanie części dotyczących przedmiotów, bloków i cząsteczek niż aktualizacja. Zrób to za jednym razem pod nowe API, a nie wersja po wersji, i licz się z tym, że pliki konfiguracyjne też będą potrzebować nowych nazw materiałów.
Jeśli plugin musi obsługiwać kilka wersji naraz, kompiluj pod najstarszą obsługiwaną i unikaj API dodanego później albo rób osobne buildy dla każdej wersji.
Z Codexe
W planie Pro i wyższych możesz zaimportować kod źródłowy pluginu jako ZIP i poprosić na przykład: „To mój plugin na Paper 1.20.4. Zaktualizuj go do Paper 1.21.4”. Codexe odczytuje wersję Minecrafta z pliku builda, buduje z Javą, której ta wersja wymaga, i naprawia błędy kompilacji na podstawie prawdziwych sygnatur API, pod które buduje. W przypadku pluginu zrobionego w Codexe poproś o nową wersję na czacie projektu.
Kompilacja dowodzi, że plugin buduje się pod nowe API. Potem wypróbuj go na serwerze testowym, bo zmiany zachowania między wersjami nie pojawiają się jako błędy kompilacji.
Pytania
Czy mogę zaktualizować plugin bez jego kodu źródłowego?
Nie w niezawodny sposób. Dekompilacja pliku .jar daje kod, który trudno utrzymać, i może łamać licencję autora. Najpierw poszukaj zaktualizowanej wersji lub utrzymywanego forka.
Czy plugin na 1.21.1 działa na 1.21.4?
Często tak, w obrębie tej samej głównej wersji, chyba że używa NMS lub API, które się zmieniło. Przetestuj go, zanim zaczniesz na nim polegać.
Dlaczego serwer pisze „Unsupported API version”?
To odwrotny przypadek: plugin celuje w nowsze API niż serwer. Zbuduj go pod wersję swojego serwera albo zaktualizuj serwer.
Przebuduj plugin pod swoją wersję
Ten prompt otworzy się gotowy do wysłania:
“Wersja na Paper 1.21.4 mojego pluginu TreeFeller ze Spigot 1.12.2: zniszczenie dolnego pnia drzewa siekierą niszczy całe drzewo, zużywa wytrzymałość za każdy pień, działa dla każdego rodzaju drewna z 1.21, w tym wiśni i namorzynu, przełączanie przez /treefeller, ustawienia w config.yml.”
Wygeneruj to w Codexe