Guide
Sådan opdaterer du et plugin til en ny Minecraft-version
Opdateret 18. oktober 2026
Når din server skifter til en ny Minecraft-version, bliver mange plugins ved med at virke uden ændringer, fordi Bukkit-API'en er stabil. Andre holder op med at indlæse eller går i stykker på små måder. Hvis forfatteren ikke har opdateret et plugin, og du har kildekoden, kan du selv opdatere det: her er, hvad der ændrer sig, og i hvilken rækkefølge.
Beskriv det, som det skal virke på den nye version.
Generér dette med CodexeTrin for trin
1.Prøv først den gamle .jar
Læg den på en testserver med den nye version, og læs konsollen. Hvis den indlæses og virker, behøver du måske ikke ændre noget.
2.Ændr API-afhængigheden
Sæt
paper-apiellerspigot-apitil den nye version ipom.xmlellerbuild.gradle.3.Opdatér api-version og Java
Sæt
api-versioniplugin.yml(for eksempel'1.21'), og kompilér til den Java, som den nye version kræver: Java 17 før 1.20.5, Java 21 fra 1.20.5, Java 25 til 26.x.4.Ret det, der ikke længere kompilerer
Byg, og gå fejlene igennem: omdøbte materialer, fjernede metoder, ændrede event-klasser. Compileren viser dem med fil og linje.
5.Opdatér afhængigheder
Plugins, som dit plugin bruger (Vault, PlaceholderAPI, ProtocolLib, WorldGuard), skal også være i versioner, der understøtter den nye Minecraft-version, både i buildfilen og på serveren.
6.Test på den nye version
Indlæs det på en server med den nye version og de samme plugins, og prøv hver kommando og funktion, ikke kun opstarten.
Hvad der typisk går i stykker
- Navne på materialer og enums: 1.13-opdateringen omdøbte de fleste genstande og blokke; senere versioner tilføjer, omdøber eller fjerner nogle. Kode, der bruger gamle navne eller numeriske id'er, fejler.
- Forældede metoder fjernet: metoder, der har været markeret som deprecated i flere versioner, forsvinder til sidst.
- Genstandsdata: fra 1.20.5 blev NBT på genstande erstattet af data components. Plugins, der redigerer genstandes NBT direkte, skal have den del omskrevet; den normale
ItemMeta-API virker stadig. - NMS og reflection: kode, der bruger serverens interne klasser, går i stykker på næsten hver version. Erstat den med API'en, hvor det er muligt, eller med et bibliotek som ProtocolLib.
- Biblioteksversioner: shadede biblioteker bygget til en ældre Java kan fejle på den nye.
Opdatering på tværs af mange versioner
At gå fra 1.8 eller 1.12 til 1.21 er tættere på en omskrivning af de dele, der rører genstande, blokke og partikler, end på en opdatering. Gør det i én omgang mod den nye API, ikke version for version, og regn med, at konfigurationsfilerne også skal have nye materialenavne.
Hvis pluginet skal understøtte flere versioner på én gang, så kompilér mod den ældste, du understøtter, og undgå API, der er tilføjet senere, eller brug separate builds pr. version.
Med Codexe
På Pro og opefter kan du importere pluginets kildekode som en ZIP og f.eks. skrive "Det her er mit Paper 1.20.4-plugin. Opdatér det til Paper 1.21.4". Codexe læser Minecraft-versionen fra buildfilen, bygger med den Java, versionen kræver, og retter kompileringsfejl ud fra de rigtige signaturer i den API, der bygges mod. For et plugin, du har lavet på Codexe, beder du om den nye version i projektchatten.
At det kompilerer, beviser, at pluginet kan bygges mod den nye API. Prøv det derefter på en testserver, for ændringer i opførsel mellem versioner viser sig ikke som kompileringsfejl.
Spørgsmål
Kan jeg opdatere et plugin uden dets kildekode?
Ikke pålideligt. At dekompilere en .jar giver kode, der er svær at vedligeholde og kan bryde forfatterens licens. Kig først efter en opdateret version eller en vedligeholdt fork.
Virker et 1.21.1-plugin på 1.21.4?
Ofte ja, inden for den samme hovedversion, medmindre det bruger NMS eller API, der er ændret. Test det, før du stoler på det.
Hvorfor siger serveren "Unsupported API version"?
Det er det modsatte tilfælde: pluginet sigter mod en nyere API end serveren. Byg det til din servers version, eller opdatér serveren.
Genbyg et plugin til din version
Denne prompt åbnes klar til at sende:
“En Paper 1.21.4-version af mit Spigot 1.12.2-plugin TreeFeller: når den nederste stamme på et træ ødelægges med en økse, falder hele træet, det koster holdbarhed pr. stamme, virker for alle træsorter i 1.21, inklusive kirsebær og mangrove, slås til og fra med /treefeller, indstillinger i config.yml.”
Generér dette med Codexe