Οδηγός
Πώς να φτιάξεις ένα plugin αποστολών για Minecraft
Ενημερώθηκε 18 Οκτωβρίου 2026
Οι αποστολές δίνουν στους παίκτες λόγο να παίζουν: σκότωσε 20 zombies, σκάψε 64 σίδερα, φέρε σε έναν villager 10 ψωμιά. Ένα plugin αποστολών αποτελείται από τρία πράγματα: στόχους που ακούν τα events του παιχνιδιού, πρόοδο αποθηκευμένη για κάθε παίκτη και ανταμοιβές. Αν ορίζεις τις αποστολές σε ένα αρχείο config, προσθέτεις νέες χωρίς να αγγίξεις τον κώδικα.
Άλλαξε τις αποστολές και τις ανταμοιβές με τις δικές σου.
Φτιάξ' το με το CodexeΒήμα βήμα
1.Διάλεξε τους τύπους στόχων
Ξεκίνα με λίγους: σκότωσε έναν τύπο mob, σπάσε ή τοποθέτησε blocks, μάζεψε αντικείμενα, κάνε craft, φτάσε σε ένα μέρος, μίλα σε ένα NPC. Κάθε αποστολή φτιάχνεται από αυτούς.
2.Όρισε τις αποστολές σε ένα αρχείο
Κάθε αποστολή στο
quests.yml: ένα id, ένα όνομα, μια περιγραφή, οι στόχοι της με τις ποσότητες, ανταμοιβές και προαπαιτούμενα (πρώτα μια άλλη αποστολή, ένα permission, ένα επίπεδο).3.Παρακολούθησε την πρόοδο κάθε παίκτη
Άκουσε τα events πίσω από κάθε στόχο και πρόσθεσε στην πρόοδο του παίκτη. Αποθήκευσέ την σε SQLite ή σε αρχείο ώστε να αντέχει τις αποσυνδέσεις και τις επανεκκινήσεις.
4.Δείξε την πρόοδο
Ένα μενού
/questsμε τις ενεργές και τις ολοκληρωμένες αποστολές, μαζί με ένα μήνυμα, title ή boss bar όταν αλλάζει η πρόοδος.5.Δώσε ανταμοιβές
Αντικείμενα, εμπειρία, χρήματα μέσω Vault ή εντολές κονσόλας όπως
lp user %player% permission set ...για οτιδήποτε άλλο.6.Κάνε build και ολοκλήρωσε μια αποστολή στο παιχνίδι
Άφησε το Codexe να το κάνει compile, μπες στον δοκιμαστικό server, δέξου μια αποστολή και τελείωσέ την. Μετά κάνε επανεκκίνηση και έλεγξε ότι η πρόοδος και οι ανταμοιβές αποθηκεύτηκαν.
Οι στόχοι και τα events πίσω τους
| Στόχος | Συμβάν | Λεπτομέρεια που πρέπει να αποφασίσεις |
|---|---|---|
| Σκότωσε mobs | EntityDeathEvent | Μέτρα μόνο τα kills του παίκτη ή και των κατοικιδίων και των βελών του |
| Σπάσε blocks | BlockBreakEvent | Αγνόησε τα blocks που έβαλε ο παίκτης, αλλιώς οι παίκτες θα βάζουν και θα σπάνε το ίδιο block |
| Μάζεψε αντικείμενα | Έλεγχος inventory ή event συλλογής | Αν τα αντικείμενα αφαιρούνται όταν παραδίδεται η αποστολή |
| Κάνε craft αντικείμενα | CraftItemEvent | Το craft με shift-click φτιάχνει πολλά μαζί |
| Φτάσε σε ένα μέρος | PlayerMoveEvent | Έλεγχε μόνο όταν ο παίκτης αλλάζει block, όχι σε κάθε κίνηση |
| Μίλα σε ένα NPC | PlayerInteractEntityEvent | Ποια οντότητα δίνει την αποστολή |
Αυτοί που δίνουν αποστολές
Ο απλούστερος τρόπος να δίνεις αποστολές είναι μια εντολή ή ένα μενού. Για έναν χαρακτήρα μέσα στον κόσμο, ένας villager ή ένα armour stand με custom όνομα και tag PersistentDataContainer λειτουργεί χωρίς άλλα plugins: το plugin τον αναγνωρίζει όταν ένας παίκτης κάνει δεξί κλικ πάνω του. Αν ο server σου χρησιμοποιεί ήδη ένα plugin για NPC όπως το Citizens, ανέφερέ το στο αίτημα ώστε το plugin να συνδεθεί με αυτό.
Παράδειγμα περιγραφής
«Ένα plugin αποστολών για Paper 1.21.4 με το όνομα Quests. Τύποι στόχων: σκότωσε mobs, σπάσε blocks (που δεν τα έβαλαν παίκτες), μάζεψε αντικείμενα και μίλα σε έναν villager σημασμένο ως αυτόν που δίνει αποστολές. Αποστολές ορισμένες στο quests.yml με όνομα, στόχους, προαπαιτούμενη αποστολή και ανταμοιβές (αντικείμενα, εμπειρία, χρήματα Vault, εντολές κονσόλας). Το /quests ανοίγει ένα μενού με διαθέσιμες, ενεργές και ολοκληρωμένες αποστολές. Η πρόοδος εμφανίζεται στο action bar. Έως 3 ενεργές αποστολές. Οι ημερήσιες αποστολές μηδενίζονται τα μεσάνυχτα, ώρα server. Πρόοδος αποθηκευμένη σε SQLite.»
Ημερήσιες και επαναλαμβανόμενες αποστολές
- Γράψε πότε μηδενίζονται: σε μια σταθερή ώρα κάθε μέρα ή 24 ώρες αφού τις τελείωσε ο παίκτης.
- Γράψε αν οι ημερήσιες αποστολές είναι τυχαίες για κάθε παίκτη ή ίδιες για όλους.
- Αποθήκευσε την ώρα της τελευταίας ολοκλήρωσης, όχι ένα flag, ώστε οι μηδενισμοί να λειτουργούν και όταν ο server είναι κλειστός.
Ερωτήσεις
Μπορούν οι αποστολές να χρησιμοποιούν το PlaceholderAPI;
Ναι. Ζήτα placeholders όπως η ενεργή αποστολή και η πρόοδός της, ώστε να εμφανίζονται σε scoreboards και tab lists. Ανέφερε το PlaceholderAPI στο αίτημα ώστε να προστεθεί ως εξάρτηση.
Μπορώ να γράψω αποστολές με Skript;
Μικρά συστήματα αποστολών χωράνε σε ένα script Skript με μεταβλητές. Πολλοί τύποι στόχων, μενού και αποθηκευμένη πρόοδος για εκατοντάδες παίκτες μένουν πιο εύκολα γρήγορα και οργανωμένα σε ένα plugin.
Πώς ελέγχω ότι οι αποστολές λειτουργούν;
Παίξ' τες στον δοκιμαστικό server του Codexe και πρόσθεσε δοκιμές με δικά σου λόγια, για παράδειγμα «ένας κανονικός παίκτης τρέχει /quests και βλέπει να ανοίγει ένα μενού». Οι δοκιμές ελέγχουν μηνύματα, αντικείμενα και μενού, όχι mobs ή blocks μέσα στον κόσμο.
Φτιάξε το plugin αποστολών σου
Αυτό το prompt ανοίγει έτοιμο για αποστολή:
“Ένα plugin αποστολών για Paper 1.21.4: τύποι στόχων σκότωσε mobs, σπάσε blocks που δεν έβαλαν παίκτες, μάζεψε αντικείμενα και μίλα σε έναν σημασμένο villager· αποστολές στο quests.yml με στόχους, προαπαιτούμενη αποστολή και ανταμοιβές (αντικείμενα, XP, χρήματα Vault, εντολές κονσόλας)· μενού /quests με διαθέσιμες, ενεργές και ολοκληρωμένες αποστολές· πρόοδος στο action bar· έως 3 ενεργές αποστολές· οι ημερήσιες μηδενίζονται τα μεσάνυχτα· πρόοδος αποθηκευμένη σε SQLite.”
Φτιάξ' το με το Codexe