Guide

Comment créer un plugin BungeeCord

Mis à jour le 18 octobre 2026

Un plugin BungeeCord tourne sur le proxy placé devant vos serveurs, pas sur un serveur de jeu. Il voit les joueurs se connecter, changer de serveur et partir, c'est donc le bon endroit pour le chat à l'échelle du réseau, les outils du staff, le mode maintenance, le MOTD et l'envoi de joueurs d'un serveur à l'autre. Il n'a ni mondes ni blocs : le gameplay revient à un plugin sur les serveurs backend.

Adaptez les commandes à votre réseau.

Générer ceci avec Codexe

Étape par étape

  1. 1.Vérifiez le proxy que vous utilisez

    BungeeCord (ou un fork comme Waterfall) et Velocity sont des API différentes. Un plugin BungeeCord ne tourne pas sur Velocity, et inversement.

  2. 2.Configurez le projet

    Un projet Maven ou Gradle avec la dépendance bungeecord-api dans la portée provided. Le proxy la fournit à l'exécution.

  3. 3.Écrire la classe principale

    Une classe qui étend net.md_5.bungee.api.plugin.Plugin, avec onEnable() pour enregistrer les commandes et les écouteurs via getProxy().getPluginManager().

  4. 4.Décrivez-le dans bungee.yml

    name, version, main et author. BungeeCord lit aussi plugin.yml, mais bungee.yml évite la confusion avec les plugins Spigot. Les commandes sont enregistrées dans le code, pas dans le fichier.

  5. 5.Écrire les commandes et les écouteurs

    Les commandes étendent Command ; les écouteurs implémentent Listener avec des méthodes @EventHandler pour des événements comme PostLoginEvent ou ServerSwitchEvent.

  6. 6.Communiquez avec les serveurs backend si besoin

    Le proxy ne voit ni les inventaires ni les mondes. Pour cela, un petit plugin compagnon sur chaque serveur backend échange des plugin messages avec le plugin du proxy.

  7. 7.Installez-le sur le proxy

    Placez le .jar dans le dossier plugins/ du proxy et redémarrez le proxy, pas les serveurs backend.

Événements utiles du proxy

ÉvénementQuand il se déclencheUsage habituel
ProxyPingEventUn client actualise la liste des serveursMOTD, nombre de joueurs, message de maintenance
PostLoginEventUn joueur a rejoint le proxyMessages de connexion, chargement des données du joueur
ServerConnectEventUn joueur est sur le point de se connecter à un serveurEnvoyer les joueurs vers un lobby, bloquer des serveurs
ServerSwitchEventUn joueur est passé sur un autre serveurMessages « a rejoint le serveur » sur tout le réseau
PlayerDisconnectEventUn joueur a quitté le réseauSauvegarde des données, notifications au staff
ChatEventUn joueur envoie un message ou une commande dans le chatChat réseau, filtres, chat staff

Bien configurer le réseau

  • Activez ip_forward dans le config.yml du proxy et bungeecord: true dans le spigot.yml de chaque serveur Spigot ou Paper, pour que les pseudos et UUID des joueurs soient transmis.
  • Réglez les serveurs backend sur online-mode=false et assurez-vous qu'ils ne sont pas accessibles directement depuis Internet, seulement via le proxy.
  • Les plugin messages ne circulent que lorsqu'un joueur est connecté à ce serveur backend, donc un message envoyé à un serveur vide n'est pas livré.

Exemple de description

« Un plugin proxy BungeeCord 1.21 appelé NetUtils. /lobby envoie le joueur sur le serveur lobby. /staffchat <message> (alias /sc) envoie un message à toutes les personnes ayant netutils.staff, sur n'importe quel serveur. /maintenance on|off affiche un MOTD de maintenance et expulse les joueurs sans netutils.bypass. Un message dans le chat staff quand un membre du staff change de serveur. Noms des serveurs, MOTD et messages dans config.yml. »

Avec Codexe

Choisissez le type BungeeCord/Velocity et indiquez le proxy que vous utilisez, car ce sont des API différentes. Codexe compile le plugin avec Maven et vérifie que le .jar a le bon descripteur avant qu'il soit prêt ; sans version dans la demande, c'est l'API BungeeCord 1.21 qui est utilisée. Si vous avez besoin d'un compagnon backend, demandez-le comme projet Spigot/Paper séparé.

Tester maintenant ne lance pas encore de serveurs proxy, alors testez le plugin proxy sur votre propre réseau ou sur un proxy local avec un serveur backend. Voir aussi le générateur de plugins BungeeCord.

Questions

Un plugin BungeeCord peut-il modifier des blocs ou des inventaires ?

Non, le proxy ne gère que les connexions et les messages. Utilisez un plugin backend pour le gameplay, et des plugin messages si les deux doivent fonctionner ensemble.

Est-ce que ça marche sur Velocity ?

Non. Velocity a sa propre API et son velocity-plugin.json. Si vous utilisez les deux, créez deux projets.

Plugin proxy ou plugin backend pour le chat ?

Un plugin proxy si le chat doit atteindre les joueurs de tous les serveurs. Un plugin backend si le chat reste sur un seul serveur.

Créez un plugin pour votre réseau

Ce prompt s'ouvre prêt à être envoyé :

“Un plugin proxy BungeeCord 1.21 appelé NetUtils : /lobby envoie le joueur sur le serveur lobby, /staffchat (alias /sc) envoie un message à toutes les personnes ayant netutils.staff sur n'importe quel serveur, /maintenance on|off affiche un MOTD de maintenance et expulse les joueurs sans netutils.bypass, changements de serveur du staff annoncés dans le chat staff, noms des serveurs, MOTD et messages dans config.yml.”

Générer ceci avec Codexe
Comment créer un plugin BungeeCord pour votre réseau | Codexe