Οδηγός
Πώς να φτιάξεις ένα plugin οικονομίας για Minecraft
Ενημερώθηκε 18 Οκτωβρίου 2026
Ένα plugin οικονομίας κρατά ένα υπόλοιπο για κάθε παίκτη και επιτρέπει στους παίκτες να πληρώνουν ο ένας τον άλλον, να κερδίζουν χρήματα και να τα ξοδεύουν σε shops. Το σημαντικό δεν είναι οι εντολές αλλά η σύνδεση με το Vault: αυτή επιτρέπει σε plugins για shops, jobs και δημοπρασίες να χρησιμοποιούν τα χρήματά σου. Ο οδηγός καλύπτει τον σχεδιασμό, την αποθήκευση και το πώς να το κάνεις build και να το δοκιμάσεις.
Ξεκίνα από αυτό το παράδειγμα και άλλαξε τους κανόνες με τους δικούς σου.
Φτιάξ' το με το CodexeΒήμα βήμα
1.Αποφάσισε τι είναι το plugin
Είτε είναι η οικονομία (αποθηκεύει τα υπόλοιπα και δηλώνεται ως η οικονομία του Vault), είτε χρησιμοποιεί μια υπάρχουσα οικονομία μέσω Vault (ένα shop, bounties, ένα plugin για jobs). Οι περισσότεροι servers χρειάζονται ένα από το καθένα, όχι δύο οικονομίες.
2.Διάλεξε server και έκδοση
Γράψε το λογισμικό του server και την έκδοση, για παράδειγμα Paper 1.21.4. Το plugin γίνεται build για το API και την έκδοση Java εκείνης της έκδοσης.
3.Κατέγραψε τις εντολές και τους κανόνες
/balance,/pay <player> <amount>,/baltopκαι εντολές διαχειριστή όπως/eco give|take|set. Πρόσθεσε το αρχικό υπόλοιπο, το όνομα του νομίσματος, τα δεκαδικά και μια ελάχιστη πληρωμή.4.Διάλεξε πού αποθηκεύονται τα υπόλοιπα
SQLite για έναν server, MySQL αν πολλοί servers πρέπει να μοιράζονται τα ίδια υπόλοιπα. Τα χρήματα πρέπει να αντέχουν επανεκκινήσεις και crashes, γι' αυτό δεν κρατιούνται ποτέ μόνο στη μνήμη.
5.Άφησε το Codexe να το γράψει και να το κάνει build
Περίγραψε το plugin και ανέφερε ρητά το Vault ώστε να προστεθεί ως εξάρτηση. Το Codexe γράφει τον κώδικα Java, το
plugin.ymlκαι τοconfig.yml, κάνει compile και διορθώνει τα σφάλματα build πριν το project γίνει Έτοιμο.6.Δοκίμασε τις πληρωμές μέσα στο παιχνίδι
Πάτησε Δοκίμασέ το τώρα και μπες στον δοκιμαστικό server. Κάνε πληρωμές ανάμεσα σε δύο λογαριασμούς, δοκίμασε ποσά πολύ μεγάλα, αρνητικά ή μη αριθμητικά, και μετά κάνε επανεκκίνηση και έλεγξε ότι τα υπόλοιπα είναι ακόμα εκεί.
7.Εγκατάστησέ το
Βάλε το Vault και το .jar σου στον φάκελο
plugins/του server και κάνε επανεκκίνηση. Αφαίρεσε κάθε άλλο plugin οικονομίας ή αποφάσισε ποιο θα χρησιμοποιεί το Vault.
Ο ρόλος του Vault
Το Vault είναι γέφυρα, όχι οικονομία. Ένα plugin οικονομίας υλοποιεί το interface Economy του Vault και το καταχωρεί στον services manager του server· τα άλλα plugins το ζητούν με getServer().getServicesManager().getRegistration(Economy.class) και καλούν μεθόδους όπως getBalance, withdrawPlayer και depositPlayer.
Έτσι ένα plugin για shop δεν χρειάζεται ποτέ να ξέρει ποια οικονομία τρέχεις. Στο plugin.yml χρησιμοποίησε depend: [Vault] όταν το plugin δεν μπορεί να λειτουργήσει χωρίς αυτό ή softdepend όταν το Vault είναι προαιρετικό. Το Vault API χρειάζεται μόνο για το compile· το ίδιο το Vault εγκαθίσταται στον server.
Αποφάσεις που γράφεις στο αίτημα
- Μορφή χρημάτων: όνομα νομίσματος σε ενικό και πληθυντικό, σύμβολο, πόσα δεκαδικά.
- Όρια: αρχικό υπόλοιπο, μέγιστο υπόλοιπο, αν τα υπόλοιπα μπορούν να γίνουν αρνητικά.
- Παίκτες εκτός σύνδεσης: αν τα
/payκαι/ecoλειτουργούν σε παίκτες που δεν είναι online. - Καταγραφή: ένα ιστορικό συναλλαγών στη βάση δεδομένων ή σε αρχείο, ώστε το staff να ελέγχει τις διενέξεις.
- Κέρδος χρημάτων: σκοτώνοντας mobs, ανταμοιβές για τον χρόνο παιχνιδιού, πώληση αντικειμένων ή μόνο εντολές διαχειριστή.
Πού να αποθηκεύσεις τα υπόλοιπα
| Αποθήκευση | Κατάλληλο για | Πρόσεξε |
|---|---|---|
| Αρχείο YAML | Πολύ μικροί servers, εύκολο στην ανάγνωση | Αργό με πολλούς παίκτες, καταστρέφεται εύκολα σε crash |
| SQLite | Ένας server, χωρίς ρυθμίσεις | Δεν μπορεί να μοιραστεί ανάμεσα σε servers |
| MySQL / MariaDB | Δίκτυα που μοιράζονται ένα κοινό υπόλοιπο | Χρειάζεται server βάσης δεδομένων και στοιχεία σύνδεσης στο config.yml |
Παράδειγμα περιγραφής
«Ένα plugin οικονομίας για Paper 1.21.4 με το όνομα Coins που δηλώνεται ως η οικονομία του Vault. /balance [player], /pay <player> <amount> με ελάχιστο 1, /baltop με τους 10 πρώτους και /eco give|take|set για παίκτες με coins.admin. Οι νέοι παίκτες ξεκινούν με 100 coins. Δύο δεκαδικά. Κάθε πληρωμή καταγράφεται με ημερομηνία, αποστολέα, παραλήπτη και ποσό. Υπόλοιπα αποθηκευμένα σε SQLite. Ονόματα νομίσματος και όλα τα μηνύματα στο config.yml.»
Το Codexe χρησιμοποιεί SQLite από προεπιλογή όταν δεν ζητάς κάτι άλλο. Αν ζητήσεις MySQL, το plugin γράφεται με μια ρύθμιση storage-type και ο δοκιμαστικός server του δίνει δική του βάση MySQL όσο το δοκιμάζεις.
Ερωτήσεις
Χρειάζομαι το Vault;
Όχι για μια αυτόνομη οικονομία που δεν τη χρησιμοποιεί τίποτε άλλο. Το χρειάζεσαι μόλις άλλα plugins (shops, jobs, δημοπρασίες) πρέπει να διαβάζουν ή να αλλάζουν υπόλοιπα, γιατί αυτό είναι το API που αναζητούν.
Μπορώ να το τρέξω μαζί με το EssentialsX;
Το EssentialsX έχει δική του οικονομία και τη δηλώνει κι αυτό στο Vault. Τρέχε μία οικονομία τη φορά ή απενεργοποίησε αυτή που δεν θέλεις, αλλιώς άλλα plugins μπορεί να χρησιμοποιούν διαφορετικό υπόλοιπο από αυτό που δείχνουν οι εντολές σου.
Μπορούν πολλοί servers να μοιράζονται τα ίδια υπόλοιπα;
Ναι, με MySQL ή MariaDB για αποθήκευση και την ίδια βάση στο config.yml κάθε server. Ζήτα το στο αίτημα ώστε το plugin να διαβάζει τα υπόλοιπα από τη βάση αντί να τα κρατά σε cache για πολλή ώρα.
Πώς το δοκιμάζω χωρίς πραγματικό server;
Με το Δοκίμασέ το τώρα: ξεκινά ένας ιδιωτικός server Paper της έκδοσής σου με το μεταγλωττισμένο plugin, και τα plugins που αναφέρονται σε depend και softdepend, όπως το Vault, εγκαθίστανται κι αυτά. Το δωρεάν πλάνο έχει 3 δοκιμαστικούς servers την ημέρα, 10 λεπτά ο καθένας.
Φτιάξε την οικονομία του server σου
Αυτό το prompt ανοίγει έτοιμο για αποστολή:
“Ένα plugin οικονομίας για Paper 1.21.4 με το όνομα Coins που δηλώνεται ως η οικονομία του Vault: /balance, /pay με ελάχιστο 1, /baltop με τους 10 πρώτους, /eco give|take|set για coins.admin, αρχικό υπόλοιπο 100, δύο δεκαδικά, καταγραφή κάθε πληρωμής, υπόλοιπα σε SQLite, ονόματα νομίσματος και μηνύματα στο config.yml.”
Φτιάξ' το με το Codexe