Οδηγός
Πώς να φτιάξεις ένα BungeeCord plugin
Ενημερώθηκε 18 Οκτωβρίου 2026
Ένα BungeeCord plugin τρέχει στο proxy που βρίσκεται μπροστά από τους servers σου, όχι σε έναν server παιχνιδιού. Βλέπει τους παίκτες να συνδέονται, να αλλάζουν server και να φεύγουν, οπότε είναι το σωστό σημείο για chat σε όλο το δίκτυο, εργαλεία για το staff, maintenance mode, το MOTD και τη μεταφορά παικτών ανάμεσα σε servers. Δεν έχει κόσμους ούτε blocks: το gameplay ανήκει σε ένα plugin στους backend servers.
Άλλαξε τις εντολές για το δίκτυό σου.
Φτιάξ' το με το CodexeΒήμα βήμα
1.Επιβεβαίωσε ποιο proxy τρέχεις
Το BungeeCord (ή ένα fork όπως το Waterfall) και το Velocity είναι διαφορετικά APIs. Ένα BungeeCord plugin δεν τρέχει σε Velocity, ούτε το αντίστροφο.
2.Στήσε το project
Ένα project Maven ή Gradle με την εξάρτηση
bungeecord-apiσε scopeprovided. Το proxy την παρέχει κατά την εκτέλεση.3.Γράψε την κύρια κλάση
Μια κλάση που κάνει extends το
net.md_5.bungee.api.plugin.Plugin, μεonEnable()για να καταχωρεί εντολές και listeners μέσω τουgetProxy().getPluginManager().4.Περίγραψέ το στο bungee.yml
name,version,mainκαιauthor. Το BungeeCord διαβάζει και τοplugin.yml, αλλά τοbungee.ymlαποφεύγει τη σύγχυση με τα Spigot plugins. Οι εντολές καταχωρούνται στον κώδικα, όχι στο αρχείο.5.Γράψε εντολές και listeners
Οι εντολές κάνουν extends το
Command· οι listeners υλοποιούν τοListenerμε μεθόδους@EventHandlerγια events όπωςPostLoginEventήServerSwitchEvent.6.Επικοινώνησε με τους backend servers αν χρειάζεται
Το proxy δεν βλέπει inventories ούτε κόσμους. Γι' αυτά, ένα μικρό συνοδευτικό plugin σε κάθε backend server ανταλλάσσει plugin messages με το plugin του proxy.
7.Εγκατάστησέ το στο proxy
Βάλε το .jar στον φάκελο
plugins/του proxy και κάνε επανεκκίνηση στο proxy, όχι στους backend servers.
Χρήσιμα events του proxy
| Συμβάν | Πότε ενεργοποιείται | Συνηθισμένη χρήση |
|---|---|---|
ProxyPingEvent | Ένας client ανανεώνει τη λίστα servers | MOTD, αριθμός παικτών, μήνυμα συντήρησης |
PostLoginEvent | Ένας παίκτης μπήκε στο proxy | Μηνύματα εισόδου, φόρτωση δεδομένων παίκτη |
ServerConnectEvent | Ένας παίκτης ετοιμάζεται να συνδεθεί σε έναν server | Αποστολή παικτών σε lobby, μπλοκάρισμα servers |
ServerSwitchEvent | Ένας παίκτης πέρασε σε άλλον server | Μηνύματα «μπήκε στον server» σε όλο το δίκτυο |
PlayerDisconnectEvent | Ένας παίκτης έφυγε από το δίκτυο | Αποθήκευση δεδομένων, ειδοποιήσεις για το staff |
ChatEvent | Ένας παίκτης στέλνει μήνυμα chat ή εντολή | Chat δικτύου, φίλτρα, staff chat |
Σωστό στήσιμο του δικτύου
- Ενεργοποίησε το
ip_forwardστοconfig.ymlτου proxy και τοbungeecord: trueστοspigot.ymlκάθε server Spigot ή Paper, ώστε να περνούν τα ονόματα και τα UUID των παικτών. - Βάλε τους backend servers σε
online-mode=falseκαι βεβαιώσου ότι δεν είναι προσβάσιμοι απευθείας από το internet, μόνο μέσω του proxy. - Τα plugin messages ταξιδεύουν μόνο όσο ένας παίκτης είναι συνδεδεμένος σε εκείνον τον backend server, οπότε ένα μήνυμα προς έναν άδειο server δεν παραδίδεται.
Παράδειγμα περιγραφής
«Ένα plugin για proxy BungeeCord 1.21 με το όνομα NetUtils. Το /lobby στέλνει τον παίκτη στον server του lobby. Το /staffchat <message> (alias /sc) στέλνει ένα μήνυμα σε όλους όσους έχουν netutils.staff σε οποιονδήποτε server. Το /maintenance on|off δείχνει ένα MOTD συντήρησης και διώχνει τους παίκτες χωρίς netutils.bypass. Ένα μήνυμα στο staff chat όταν ένα μέλος του staff αλλάζει server. Ονόματα servers, MOTD και μηνύματα στο config.yml.»
Με το Codexe
Διάλεξε τον τύπο BungeeCord/Velocity και γράψε ποιο proxy τρέχεις, γιατί είναι διαφορετικά APIs. Το Codexe κάνει compile το plugin με Maven και ελέγχει ότι το .jar έχει τον σωστό descriptor πριν γίνει Έτοιμο· χωρίς έκδοση στο αίτημα χρησιμοποιείται το BungeeCord API 1.21. Αν χρειάζεσαι συνοδευτικό plugin για τους backend servers, ζήτα το ως ξεχωριστό project Spigot/Paper.
Το Δοκίμασέ το τώρα δεν τρέχει ακόμα proxy servers, οπότε δοκίμασε το plugin του proxy στο δικό σου δίκτυο ή σε ένα τοπικό proxy με έναν backend server. Δες επίσης τον generator για BungeeCord plugins.
Ερωτήσεις
Μπορεί ένα BungeeCord plugin να αλλάξει blocks ή inventories;
Όχι, το proxy χειρίζεται μόνο συνδέσεις και μηνύματα. Χρησιμοποίησε ένα backend plugin για το gameplay, και plugin messages αν τα δύο πρέπει να συνεργάζονται.
Λειτουργεί σε Velocity;
Όχι. Το Velocity έχει δικό του API και velocity-plugin.json. Αν τρέχεις και τα δύο, φτιάξε δύο projects.
Plugin για το proxy ή για τον backend server για το chat;
Plugin για το proxy αν το chat πρέπει να φτάνει σε παίκτες σε κάθε server. Plugin για τον backend server αν το chat μένει σε έναν server.
Φτιάξε ένα plugin για το δίκτυό σου
Αυτό το prompt ανοίγει έτοιμο για αποστολή:
“Ένα plugin για proxy BungeeCord 1.21 με το όνομα NetUtils: το /lobby στέλνει τον παίκτη στον server του lobby, το /staffchat (alias /sc) στέλνει ένα μήνυμα σε όλους όσους έχουν netutils.staff σε οποιονδήποτε server, το /maintenance on|off δείχνει ένα MOTD συντήρησης και διώχνει τους παίκτες χωρίς netutils.bypass, οι αλλαγές server του staff ανακοινώνονται στο staff chat, ονόματα servers, MOTD και μηνύματα στο config.yml.”
Φτιάξ' το με το Codexe