Οδηγός

Πώς να ενημερώσεις ένα plugin σε νέα έκδοση Minecraft

Ενημερώθηκε 18 Οκτωβρίου 2026

Όταν ο server σου περνά σε νέα έκδοση Minecraft, πολλά plugins συνεχίζουν να λειτουργούν χωρίς αλλαγές, γιατί το Bukkit API είναι σταθερό. Άλλα σταματούν να φορτώνουν ή χαλάνε σε μικρά σημεία. Αν ο δημιουργός δεν έχει ενημερώσει ένα plugin και έχεις τον κώδικά του, μπορείς να το ενημερώσεις μόνος σου: δες τι αλλάζει και με ποια σειρά.

Περίγραψέ το όπως πρέπει να λειτουργεί στη νέα έκδοση.

Φτιάξ' το με το Codexe

Βήμα βήμα

  1. 1.Δοκίμασε πρώτα το παλιό .jar

    Βάλ' το σε έναν δοκιμαστικό server της νέας έκδοσης και διάβασε την κονσόλα. Αν φορτώνει και λειτουργεί, ίσως δεν χρειάζεται να αλλάξεις τίποτα.

  2. 2.Άλλαξε την εξάρτηση του API

    Στο pom.xml ή στο build.gradle, βάλε το paper-api ή το spigot-api στη νέα έκδοση.

  3. 3.Ενημέρωσε το api-version και τη Java

    Όρισε το api-version στο plugin.yml (για παράδειγμα '1.21') και κάνε compile για την Java που χρειάζεται η νέα έκδοση: Java 17 πριν από την 1.20.5, Java 21 από την 1.20.5, Java 25 για την 26.x.

  4. 4.Διόρθωσε ό,τι δεν γίνεται πια compile

    Κάνε build και πέρασε τα σφάλματα ένα ένα: υλικά που μετονομάστηκαν, μέθοδοι που αφαιρέθηκαν, κλάσεις events που άλλαξαν. Ο compiler τα δείχνει με αρχείο και γραμμή.

  5. 5.Ενημέρωσε τις εξαρτήσεις

    Τα plugins που χρησιμοποιεί το plugin σου (Vault, PlaceholderAPI, ProtocolLib, WorldGuard) χρειάζονται κι αυτά εκδόσεις που υποστηρίζουν τη νέα έκδοση Minecraft, τόσο στο αρχείο build όσο και στον server.

  6. 6.Δοκίμασέ το στη νέα έκδοση

    Φόρτωσέ το σε έναν server της νέας έκδοσης με τα ίδια plugins και δοκίμασε κάθε εντολή και λειτουργία, όχι μόνο την εκκίνηση.

Τι χαλάει συνήθως

  • Ονόματα υλικών και enums: το update 1.13 μετονόμασε τα περισσότερα αντικείμενα και blocks· οι επόμενες εκδόσεις προσθέτουν, μετονομάζουν ή αφαιρούν κάποια. Ο κώδικας που χρησιμοποιεί παλιά ονόματα ή αριθμητικά ids αποτυγχάνει.
  • Deprecated μέθοδοι που αφαιρέθηκαν: οι μέθοδοι που είναι σημειωμένες ως deprecated για αρκετές εκδόσεις κάποια στιγμή εξαφανίζονται.
  • Δεδομένα αντικειμένων: από την 1.20.5, το NBT των αντικειμένων αντικαταστάθηκε από data components. Τα plugins που επεξεργάζονται απευθείας το NBT των αντικειμένων χρειάζονται ξαναγράψιμο σε εκείνο το κομμάτι· το κανονικό API ItemMeta συνεχίζει να λειτουργεί.
  • NMS και reflection: ο κώδικας που χρησιμοποιεί εσωτερικές κλάσεις του server χαλάει σχεδόν σε κάθε έκδοση. Αντικατάστησέ τον με το API όπου γίνεται ή με μια βιβλιοθήκη όπως το ProtocolLib.
  • Εκδόσεις βιβλιοθηκών: βιβλιοθήκες που έγιναν shade και build για παλιότερη Java μπορεί να αποτύχουν στη νέα.

Ενημέρωση ανάμεσα σε πολλές εκδόσεις

Το πέρασμα από την 1.8 ή την 1.12 στην 1.21 μοιάζει περισσότερο με ξαναγράψιμο των κομματιών που αγγίζουν αντικείμενα, blocks και particles παρά με ενημέρωση. Κάν' το με μία κίνηση πάνω στο νέο API, όχι έκδοση προς έκδοση, και να περιμένεις ότι και τα αρχεία config θα χρειαστούν νέα ονόματα υλικών.

Αν το plugin πρέπει να υποστηρίζει πολλές εκδόσεις ταυτόχρονα, κάνε compile με την παλιότερη που υποστηρίζεις και απόφυγε API που προστέθηκε αργότερα, ή χρησιμοποίησε ξεχωριστά builds για κάθε έκδοση.

Με το Codexe

Στο Pro και πάνω μπορείς να εισαγάγεις τον κώδικα του plugin ως ZIP και να ζητήσεις, για παράδειγμα, «Αυτό είναι το plugin μου για Paper 1.20.4. Ενημέρωσέ το σε Paper 1.21.4». Το Codexe διαβάζει την έκδοση του Minecraft από το αρχείο build, κάνει build με την Java που χρειάζεται εκείνη η έκδοση και διορθώνει τα σφάλματα compile με τις πραγματικές υπογραφές του API πάνω στο οποίο κάνει build. Για ένα plugin που έφτιαξες στο Codexe, ζήτα τη νέα έκδοση στο chat του project.

Το compile αποδεικνύει ότι το plugin γίνεται build στο νέο API. Μετά δοκίμασέ το σε δοκιμαστικό server, γιατί οι αλλαγές συμπεριφοράς ανάμεσα σε εκδόσεις δεν εμφανίζονται ως σφάλματα compile.

Ερωτήσεις

Μπορώ να ενημερώσω ένα plugin χωρίς τον κώδικά του;

Όχι με αξιοπιστία. Το decompile ενός .jar δίνει κώδικα που συντηρείται δύσκολα και μπορεί να παραβιάζει την άδεια του δημιουργού. Ψάξε πρώτα για ενημερωμένη έκδοση ή για ένα fork που συντηρείται.

Λειτουργεί ένα plugin για 1.21.1 στην 1.21.4;

Συχνά ναι, μέσα στην ίδια κύρια έκδοση, εκτός αν χρησιμοποιεί NMS ή API που άλλαξε. Δοκίμασέ το πριν βασιστείς σε αυτό.

Γιατί ο server λέει «Unsupported API version»;

Είναι η αντίθετη περίπτωση: το plugin στοχεύει σε νεότερο API από τον server. Κάνε build για την έκδοση του server σου ή ενημέρωσε τον server.

Ξαναφτιάξε ένα plugin για την έκδοσή σου

Αυτό το prompt ανοίγει έτοιμο για αποστολή:

“Μια έκδοση για Paper 1.21.4 του plugin μου TreeFeller για Spigot 1.12.2: όταν σπας τον κάτω κορμό ενός δέντρου με τσεκούρι σπάει ολόκληρο το δέντρο, κοστίζει αντοχή για κάθε κορμό, λειτουργεί για κάθε τύπο ξύλου της 1.21 μαζί με cherry και mangrove, ενεργοποίηση με /treefeller, ρυθμίσεις στο config.yml.”

Φτιάξ' το με το Codexe
Πώς να ενημερώσεις ένα Minecraft plugin σε νέα έκδοση | Codexe