Príručka

Ako aktualizovať plugin na novú verziu Minecraftu

Aktualizované 18. októbra 2026

Keď tvoj server prejde na novú verziu Minecraftu, mnohé pluginy fungujú ďalej bez zmien, pretože Bukkit API je stabilné. Iné sa prestanú načítavať alebo sa pokazia v drobnostiach. Ak autor plugin neaktualizoval a ty máš jeho zdrojový kód, môžeš ho aktualizovať sám: tu je, čo sa mení a v akom poradí.

Opíš ho tak, ako má fungovať na novej verzii.

Vygeneruj to v Codexe

Krok za krokom

  1. 1.Najprv vyskúšaj starý .jar

    Daj ho na testovací server novej verzie a prečítaj si konzolu. Ak sa načíta a funguje, možno nemusíš nič meniť.

  2. 2.Zmeň závislosť API

    V pom.xml alebo build.gradle nastav paper-api alebo spigot-api na novú verziu.

  3. 3.Aktualizuj api-version a Java

    Nastav api-version v plugin.yml (napríklad '1.21') a kompiluj pre verziu Java, ktorú nová verzia potrebuje: Java 17 pred 1.20.5, Java 21 od 1.20.5, Java 25 pre 26.x.

  4. 4.Oprav, čo sa už neskompiluje

    Zostav plugin a prejdi chyby: premenované materiály, odstránené metódy, zmenené triedy eventov. Kompilátor ich vypíše so súborom a riadkom.

  5. 5.Aktualizuj závislosti

    Pluginy, ktoré tvoj plugin používa (Vault, PlaceholderAPI, ProtocolLib, WorldGuard), tiež potrebujú verzie, ktoré podporujú novú verziu Minecraftu, v súbore buildu aj na serveri.

  6. 6.Otestuj na novej verzii

    Načítaj ho na serveri novej verzie s rovnakými pluginmi a vyskúšaj každý príkaz a funkciu, nielen štart.

Čo sa zvyčajne pokazí

  • Názvy materiálov a enumov: aktualizácia 1.13 premenovala väčšinu predmetov a blokov; neskoršie verzie niektoré pridávajú, premenúvajú alebo odstraňujú. Kód, ktorý používa staré názvy alebo číselné ID, zlyhá.
  • Odstránené zastarané metódy: metódy označené ako zastarané počas niekoľkých verzií nakoniec zmiznú.
  • Dáta predmetov: od 1.20.5 nahradili NBT predmetov dátové komponenty. Pluginy, ktoré priamo upravujú NBT predmetov, potrebujú túto časť prepísať; bežné API ItemMeta funguje ďalej.
  • NMS a reflexia: kód, ktorý používa interné triedy servera, sa pokazí takmer v každej verzii. Kde sa dá, nahraď ho API alebo knižnicou ako ProtocolLib.
  • Verzie knižníc: pribalené knižnice zostavené pre starší Java môžu na novom zlyhať.

Aktualizácia o mnoho verzií

Prechod z 1.8 alebo 1.12 na 1.21 je skôr prepisom častí, ktoré pracujú s predmetmi, blokmi a časticami, než aktualizáciou. Urob to naraz proti novému API, nie verziu po verzii, a počítaj s tým, že aj konfiguračné súbory budú potrebovať nové názvy materiálov.

Ak musí plugin podporovať viac verzií naraz, kompiluj proti najstaršej podporovanej a vyhni sa API pridanému neskôr, alebo použi samostatné buildy pre každú verziu.

S Codexe

V pláne Pro a vyššom môžeš importovať zdrojový kód pluginu ako ZIP a požiadať napríklad: „Toto je môj plugin pre Paper 1.20.4. Aktualizuj ho na Paper 1.21.4“. Codexe prečíta verziu Minecraftu zo súboru buildu, zostaví plugin s verziou Java, ktorú táto verzia potrebuje, a opraví chyby kompilácie podľa skutočných signatúr API, proti ktorému zostavuje. Pri plugine, ktorý si vytvoril v Codexe, požiadaj o novú verziu v chate projektu.

Kompilácia dokazuje, že sa plugin zostaví na novom API. Potom ho vyskúšaj na testovacom serveri, pretože zmeny správania medzi verziami sa neprejavia ako chyby kompilácie.

Otázky

Môžem aktualizovať plugin bez zdrojového kódu?

Spoľahlivo nie. Dekompilácia .jar dá kód, ktorý sa ťažko udržiava a môže porušiť licenciu autora. Najprv hľadaj aktualizovanú verziu alebo udržiavaný fork.

Funguje plugin pre 1.21.1 na 1.21.4?

V rámci rovnakej hlavnej verzie často áno, pokiaľ nepoužíva NMS alebo API, ktoré sa zmenilo. Otestuj ho, skôr než sa naň spoľahneš.

Prečo server hlási „Unsupported API version“?

To je opačný prípad: plugin cieli na novšie API, než má server. Zostav ho pre verziu svojho servera alebo aktualizuj server.

Zostav plugin znova pre svoju verziu

Toto zadanie sa otvorí pripravené na odoslanie:

“Verzia môjho pluginu TreeFeller pre Spigot 1.12.2 pre Paper 1.21.4: zničenie spodného kmeňa stromu sekerou zničí celý strom, za každý kmeň ubudne výdrž, funguje pre každý typ dreva v 1.21 vrátane čerešne a mangrovníka, zapína sa cez /treefeller, nastavenia v config.yml.”

Vygeneruj to v Codexe
Ako aktualizovať plugin pre Minecraft na novú verziu | Codexe