Útmutató
Hogyan frissíts plugint új Minecraft-verzióra
Frissítve: 2026. október 18.
Amikor a szervered új Minecraft-verzióra vált, sok plugin változtatás nélkül tovább működik, mert a Bukkit API stabil. Mások nem töltődnek be, vagy apróbb dolgokban elromlanak. Ha a szerző nem frissített egy plugint, és megvan a forráskódja, magad is frissítheted: íme, mi változik és milyen sorrendben.
Írd le, hogyan kellene működnie az új verzión.
Generáld ezt a Codexe-szelLépésről lépésre
1.Előbb próbáld ki a régi .jar fájlt
Tedd fel egy új verziójú tesztszerverre, és olvasd a konzolt. Ha betöltődik és működik, lehet, hogy semmit sem kell változtatnod.
2.Módosítsd az API-függőséget
A
pom.xmlvagy abuild.gradlefájlban állítsd apaper-apivagyspigot-apifüggőséget az új verzióra.3.Frissítsd az api-versiont és a Java-verziót
Állítsd be az
api-versionértékét aplugin.ymlfájlban (például'1.21'), és fordíts arra a Java-verzióra, amely az új verzióhoz kell: Java 17 az 1.20.5 előtt, Java 21 az 1.20.5-től, Java 25 a 26.x-hez.4.Javítsd, ami már nem fordul le
Buildelj, és menj végig a hibákon: átnevezett anyagok, eltávolított metódusok, megváltozott eseményosztályok. A fordító fájllal és sorral együtt listázza őket.
5.Frissítsd a függőségeket
A pluginod által használt pluginokból (Vault, PlaceholderAPI, ProtocolLib, WorldGuard) is olyan verzió kell, amely támogatja az új Minecraft-verziót, a buildfájlban és a szerveren is.
6.Teszteld az új verzión
Töltsd be egy új verziójú szerverre ugyanazokkal a pluginokkal, és próbálj ki minden parancsot és funkciót, ne csak az indítást.
Ami általában elromlik
- Anyag- és enumnevek: az 1.13-as frissítés a legtöbb tárgyat és blokkot átnevezte; a későbbi verziók hozzáadnak, átneveznek vagy eltávolítanak néhányat. A régi neveket vagy numerikus azonosítókat használó kód hibára fut.
- Eltávolított elavult metódusok: a több verzión át elavultnak jelölt metódusok előbb-utóbb eltűnnek.
- Tárgyadatok: 1.20.5-től a tárgyak NBT-jét adatkomponensek váltották fel. A tárgy-NBT-t közvetlenül szerkesztő pluginoknál azt a részt újra kell írni; a normál
ItemMetaAPI tovább működik. - NMS és reflection: a belső szerverosztályokat használó kód szinte minden verzióval elromlik. Ahol lehet, cseréld le API-ra, vagy egy könyvtárra, például a ProtocolLibre.
- Könyvtárverziók: a régebbi Java-verzióhoz buildelt, becsomagolt könyvtárak az újon hibára futhatnak.
Frissítés sok verzión át
Az 1.8-ról vagy 1.12-ről 1.21-re váltás inkább a tárgyakhoz, blokkokhoz és részecskékhez nyúló részek újraírása, mint frissítés. Egy lépésben csináld az új API-ra, ne verzióról verzióra, és számíts arra, hogy a konfigurációs fájlokban is új anyagnevek kellenek.
Ha a pluginnak egyszerre több verziót kell támogatnia, a legrégebbi támogatott verzióra fordíts, és kerüld a később hozzáadott API-t, vagy használj verziónként külön buildeket.
A Codexe-szel
A Pro csomagtól felfelé ZIP-ként importálhatod a plugin forráskódját, és kérheted például ezt: „Ez a Paper 1.20.4-es pluginom. Frissítsd Paper 1.21.4-re”. A Codexe a buildfájlból olvassa ki a Minecraft-verziót, az ahhoz szükséges Java-verzióval buildel, és a fordítási hibákat annak az API-nak a valódi szignatúráival javítja, amelyre buildel. Egy Codexe-en készült pluginnál kérd az új verziót a projekt chatjében.
A fordítás azt bizonyítja, hogy a plugin buildelhető az új API-ra. Utána próbáld ki egy tesztszerveren, mert a verziók közötti viselkedésváltozások nem jelennek meg fordítási hibaként.
Kérdések
Frissíthetek egy plugint a forráskódja nélkül?
Megbízhatóan nem. Egy .jar visszafejtése nehezen karbantartható kódot ad, és sértheti a szerző licencét. Előbb keress frissített verziót vagy karbantartott forkot.
Működik egy 1.21.1-es plugin 1.21.4-en?
Ugyanazon a fő verzión belül gyakran igen, hacsak nem használ NMS-t vagy megváltozott API-t. Teszteld, mielőtt számítanál rá.
Miért írja a szerver, hogy „Unsupported API version”?
Ez a fordított eset: a plugin újabb API-t céloz, mint a szerver. Buildeld a szervered verziójára, vagy frissítsd a szervert.
Buildeld újra a plugint a verziódra
Ez a prompt küldésre készen nyílik meg:
“A TreeFeller nevű Spigot 1.12.2-es pluginom Paper 1.21.4-es változata: ha egy fa alsó rönkjét fejszével töröd ki, az egész fa kidől, rönkönként tartósságot fogyaszt, minden 1.21-es fafajtával működik, a cseresznyét és a mangrovét is beleértve, ki-be kapcsolás a /treefeller paranccsal, beállítások a config.yml-ben.”
Generáld ezt a Codexe-szel