Οδηγός

Πώς να φτιάξεις ένα BungeeCord plugin

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

Ένα BungeeCord plugin τρέχει στο proxy που βρίσκεται μπροστά από τους servers σου, όχι σε έναν server παιχνιδιού. Βλέπει τους παίκτες να συνδέονται, να αλλάζουν server και να φεύγουν, οπότε είναι το σωστό σημείο για chat σε όλο το δίκτυο, εργαλεία για το staff, maintenance mode, το MOTD και τη μεταφορά παικτών ανάμεσα σε servers. Δεν έχει κόσμους ούτε blocks: το gameplay ανήκει σε ένα plugin στους backend servers.

Άλλαξε τις εντολές για το δίκτυό σου.

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

Βήμα βήμα

  1. 1.Επιβεβαίωσε ποιο proxy τρέχεις

    Το BungeeCord (ή ένα fork όπως το Waterfall) και το Velocity είναι διαφορετικά APIs. Ένα BungeeCord plugin δεν τρέχει σε Velocity, ούτε το αντίστροφο.

  2. 2.Στήσε το project

    Ένα project Maven ή Gradle με την εξάρτηση bungeecord-api σε scope provided. Το proxy την παρέχει κατά την εκτέλεση.

  3. 3.Γράψε την κύρια κλάση

    Μια κλάση που κάνει extends το net.md_5.bungee.api.plugin.Plugin, με onEnable() για να καταχωρεί εντολές και listeners μέσω του getProxy().getPluginManager().

  4. 4.Περίγραψέ το στο bungee.yml

    name, version, main και author. Το BungeeCord διαβάζει και το plugin.yml, αλλά το bungee.yml αποφεύγει τη σύγχυση με τα Spigot plugins. Οι εντολές καταχωρούνται στον κώδικα, όχι στο αρχείο.

  5. 5.Γράψε εντολές και listeners

    Οι εντολές κάνουν extends το Command· οι listeners υλοποιούν το Listener με μεθόδους @EventHandler για events όπως PostLoginEvent ή ServerSwitchEvent.

  6. 6.Επικοινώνησε με τους backend servers αν χρειάζεται

    Το proxy δεν βλέπει inventories ούτε κόσμους. Γι' αυτά, ένα μικρό συνοδευτικό plugin σε κάθε backend server ανταλλάσσει plugin messages με το plugin του proxy.

  7. 7.Εγκατάστησέ το στο proxy

    Βάλε το .jar στον φάκελο plugins/ του proxy και κάνε επανεκκίνηση στο proxy, όχι στους backend servers.

Χρήσιμα events του proxy

ΣυμβάνΠότε ενεργοποιείταιΣυνηθισμένη χρήση
ProxyPingEventΈνας client ανανεώνει τη λίστα serversMOTD, αριθμός παικτών, μήνυμα συντήρησης
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
Πώς να φτιάξεις ένα BungeeCord plugin για το δίκτυό σου | Codexe