Dans ce tutoriel, nous allons comment créer un serveur BungeeCord. BungeeCord est un proxy permettant l'utilisation de plusieurs serveurs Minecraft pour répartir la charge (en toute transparence pour le joueur), en tirant pleinement parti des processeurs multicœurs. Lorsque le joueur se connecte à BungeeCord, celui-ci établit une liaison transparente pour le joueur avec le serveur Minecraft et permet au joueur de se connecter. Ce système permet à un serveur unique de devenir un réseau de serveurs.

À partir de là, le joueur peut utiliser des commandes intégrées et/ou des portails (ajoutés par un plugin) pour se déplacer sur des serveurs différents. 

Que vous soyez un petit serveur souhaitant proposer plusieurs modes de jeu ou à la tête d'une grosse communauté, BungeeCord est la solution idéale pour vous. Avec son aide, vous pourrez libérer le plein potentiel de votre communauté.

Créer un serveur BungeeCord

Vous créer votre propre instance BungeeCord et l'utiliser avec votre serveur Minecraft hébergé chez mTxServ ?

Démarrez en quelques clics avec nos offres de location de serveur Bungeecord.

Configuration BungeeCord

Vous avez votre serveur BungeeCord ? Nous allons commencer la configuration. 

Première étape, nous allons déclarer la liste de nos serveurs Minecraft.

  1. Rendez-vous dans votre panel de gestion.

  2. Cliquez sur Fichiers et FTP.

  3. Allez dans BungeeCord et éditez le fichier config.yml selon vos besoins.

  4. Vous acceptez les versions clients crackés ? Cherchez la section online_mode et indiquez false.
    Si votre serveur utilise le online_mode, indiquez true.
    Attention: pour que cela fonctionne, désactivez ce même paramètre sur vos serveurs Minecraft dans le fichier server.properties.

  5. Cherchez la section servers. Vous devez définir dedans la liste de vos serveurs Minecraft.
    Pour indiquer un serveur, vous devez ajouter une section :

    server1:                 # Nom associé au serveur en interne (changez le nom pour chaque serveur).
      address: 1.2.3.4:25565 # Adresse du serveur Minecraft.
      restricted: false      # Si true, empêche les joueurs de rejoindre le serveur à moins qu'ils ne disposent de l'autorisation bungeecord.server.[Nom du serveur].
      motd: 'Welcome'        # Message de bienvenue du serveur Minecraft.

    Par exemple :

    lobby:
      address: game-fr-104.mtxserv.com:25565
      restricted: false
      motd: '&1Welcome to mTxServ Lobby'

  6. Pour vous ajouter comme administrateur, dans la section `groups`, ajoutez votre pseudo :
    groups:
      Administrateur:
      - votrepseudominecraft

  7. Vous voulez rediriger vos joueurs vers un serveur en particulier (notre lobby) ?
    Passez le paramètre force_default_server à true puis vérifiez la liste des serveurs prioritaires, votre lobby doit être en premier pour être prioritaire :
      force_default_server: true
      priorities:
      - lobby

  8. Redémarrez votre serveur.
  9. Pour tester, vous pouvez vous connecter in-game à votre BungeeCord !

Configuration avancée BungeeCord

Voici la liste des paramètres modifiables dans le fichier de configuration :

  • groups
    Ici, vous pouvez affecter des joueurs à un groupe de permissions que vous avez créé précédemment dans la configuration.
    Ajoutez uniquement les joueurs qui ont besoin de permissions personnalisées.
  • disabled_commands
    Listez ici les commandes que vous souhaitez désactiver sur votre instance BungeeCord.
  • player_limit (par défaut: -1)
    Limite de joueurs pour votre instance BungeeCord.
    Si défini sur 0 ou inférieur, cela permettra à un nombre illimité d'utilisateurs de rejoindre.
  • log_commands (par défaut: false)
    Si activé, les commandes BungeeCord tapez dans les utilisateurs seront ajoutés dans les logs du proxy.
  • stats (par défaut: randomly generated string)
    Utilisé à des fins de statistiques, veuillez ne pas supprimer ou modifier le code.
  • listeners
    Les listeners sont des options configurables qui peuvent être trouvés dans la section listener de la configuration BungeeCord.
  • max_players (par défaut: 1)
    Nombre maximal de joueurs indiqué dans le menu multijoueur du client minecraft.
    Notez que cette limite est fausse, vous pouvez la définir sur 0, les joueurs pourront toujours y participer. Regardez player_limit pour ajouter "une vraie" limite de joueur.
  • ping_passthrough (par défaut: false)
    S'il est activé, le serveur affichera le ping réseau et non le ping actuel du serveur.
  • tab_list (par défaut: GLOBAL_PING)
    GLOBAL_PING: Montre tous les joueurs connectés au proxy, avec le ping.
    GLOBAL: Comme ci-dessus, mais sans mettre à jour le ping.
    SERVEUR: affiche uniquement les joueurs sur le serveur auquel vous êtes connecté.

    Remarque : Les versions de BungeeCord 1.8+ ne disposent pas des options GLOBAL ou GLOBAL_PING.
    Vous pouvez utiliser les plugins GlobalTablist ou BungeeTabListPlus pour avoir cette fonctionnalité dans 1.8+
  • priorities (par défaut: lobby)
    Lors de la connexion d'un nouveau joueurs (ou si vous forcez le serveur par défaut, tous les joueurs connectés), BungeeCord parcourt cette liste de serveurs de haut en bas et essaie de transférer la connexion à chacun d’eux séquentiellement.
    Vous pouvez ainsi prendre en charge plusieurs versions de client. Spécifiez simplement au moins un serveur par version et BungeeCord fera la correspondance pour vous.
  • forced_hosts (par défaut: pvp.md-5.net: pvp)
    Permet la redirection. Si le sous-domaine pvp.md-5.net du domaine md-5.net est joignable, il ignorera le serveur par défaut et ira au serveur indiqué dans la configuration (dans ce cas directement au serveur pvp).
  • tab_size (par défaut: 60)
    La quantité de joueurs qui apparaîtra dans le menu TAB.
  • force_default_server (par défaut: false)
    Si activé, le joueur se connectera toujours au serveur par défaut lors de la connexion au serveur.
    Si désactivé, le joueur rejoindra le serveur auquel il était connecté en dernier.
  • motd (par défaut: "Another Bungee Server")
    Le message à afficher dans le menu multijoueur lorsque les joueurs envoient une requête ping au serveur.
  • query_enabled (par défaut: false)
    Active/désactive le port query.
  • query_port (par défaut: 25577)
    Port UDP qui sera utilisé si query_enabled est à true.
  • timeout (par défaut: 30000)
    Combien de temps le proxy BungeeCord doit-il ne pas répondre avant de fermer toutes les connexions?
  • connection_throttle (par défaut: 4000)
    Délai nécessaire à un nouveau client pour se connecter à nouveau (après une tentative de connexion récente), visant à empêcher les attaques (en millisecondes).
  • connection_throttle_limit (par défaut: 3)
  • ip_forward (par défaut: true)
    Activer ou non l'IP forward (qui transmet l'adresse IP réelle du joueur à Bukkit, plutôt que l'adresse IP du proxy) et le UUID du joueur (le véritable UUID en mode en ligne à Bukkit, plutôt qu'un hash de nom d'utilisateur en mode hors connexion).
  • servers
    Dans cette section, vous listerez tous les serveurs qui seront connectés via l'instance BungeeCord.
    Il est recommandé d'utiliser des lettres minuscules pour les noms des serveurs.
    Remarque: si vous activez l'option permettant de resteindre la connexion à un des serveurs, empêche les joueurs de rejoindre le serveur à moins qu'ils ne disposent de l'autorisation bungeecord.server.[Nom du serveur].
  • network_compression_threshold (par défaut: 256)
  • online_mode (par défaut: true)
    Indique si l'instance BungeeCord s'authentifiera auprès des serveurs Mojang.
    Si la valeur est définie sur false, les joueurs crackés pourront également rejoindre votre serveur.
  • prevent_proxy_connections (par défaut: false)
    Si activé, BungeeCord n'enverra pas les adresses IP de vos joueurs à Mojang.
  • proxy_protocol (par défaut: false)
    Cela permet au serveur de prendre en charge le protocole HAProxy PROXY.
    La plupart des utilisateurs ne devraient pas avoir besoin d'activer cette option.
  • forge_support (par défaut: false)
    Activez cette option pour supporter les clients Forge.
  • inject_commands (par défaut: false)
    Permet à vos commandes BungeeCord d'être auto-complétées si vous appuyez sur TAB.

Exemple de configuration BungeeCord

Voici un exemple de configuration sur un serveur BungeeCord hébergé chez mTxServ :

  • host doit contenir l'adresse de votre serveur BungeeCord.
  • play.mtxserv.com (usage avancé, faculatif) est un sous-domaine qui permettrait de se connecter directement à notre lobby.
    Vous pouvez définir des sous-domaine reliés à des serveurs spécifiques (ex: pvp.mtxserv.com, skywars.mtxserv.com, etc).
  • votrepseudominecraft contient votre pseudo minecraft pour vous donner les droits admins.
  • Si vous utilisez le online_mode à true, n'oubliez pas de désactiver ce même paramètre sur les serveurs Minecraft!
  • Dans cet exemple, nous n'avons qu'un seul serveur relié à notre BungeeCord, le serveur lobby.
    Si un joueur se connecte à notre proxy BungeeCord, il sera redirigé automatiquement sur le lobby, grâce à force_default_server: true.

connection_throttle_limit: 3
online_mode: true
log_commands: false
network_compression_threshold: 256
listeners:
- max_players: 9999
  host: game-fr-XXX:27220
  bind_local_address: true
  ping_passthrough: false
  tab_list: GLOBAL_PING
  tab_size: 60
  force_default_server: true
  motd: Bienvenue sur le serveur &9Minecraft
  query_enabled: true
  query_port: 27225
  proxy_protocol: false
  priorities:
  - lobby
  forced_hosts:
    play.mtxserv.com: lobby
connection_throttle: -1
groups:
  Administrateur:
  - votrepseudominecraft
log_pings: true
ip_forward: true
prevent_proxy_connections: false
forge_support: false
stats: dad7a4cb-5a80-4931-936b-38f632eec2c3
disabled_commands:
- disabledcommandhere
timeout: 30000
permissions:
  default:
  - bungeecord.command.server
  - bungeecord.command.list
  Administrateur:
  - bungeecord.command.alert
  - bungeecord.command.end
  - bungeecord.command.ip
  - bungeecord.command.reload
  - bungeecord.command.server
  - bungeecord.command.find
  - bungeecord.command.send
  - bungeecord.command.list
servers:
  lobby:
    address: game-fr-xx.mtxserv.com:27170
    restricted: false
    motd: Serveur §0§Cby &B&LmTxServ§E.com
player_limit: -1

Les plugins BungeeCord

BungeeCord peut aussi être étendu à l'infini grâce aux plugins BungeeCord. Découvrez la liste de tous les plugins ici.

Vous avez trouvé un plugin que vous voulez ajouter ?

  1. Téléchargez le fichier jar du plugin que vous voulez installer.
  2. Envoyez le fichier dans le répertoire BungeeCord/plugins.
  3. Il ne vous reste plus qu'à redémarrer votre serveur et configurer le plugin ajouté ;)

Commandes BungeeCord

La liste des commandes in-game du proxy sont disponibles sur le wiki officiel.

Pour voir la liste complète des commandes, cliquez ici.

Permissions BungeeCord

Voici les permissions pour utiliser les commandes que vous pouvez utiliser dans le proxy. Celles-ci sont différentes des permissions Bukkit et Spigot. 

Tous les joueurs auront la possibilité d’utiliser les commandes indiquées "par défaut". 

Ceux qui se voient attribuer le groupe admin dans la section groups sont autorisés à utiliser les commandes supplémentaires.

Notez que chaque groupe hérite uniquement de la valeur "par défaut". Il peut donc être nécessaire de placer le même nœud dans différents groupes si vous en ajoutez d'autres.

  • bungeecord.command.server (défaut)
  • bungeecord.command.list (défaut)
  • bungeecord.command.alert (admin)
  • bungeecord.command.end (admin)
  • bungeecord.command.ip (admin)
  • bungeecord.command.reload (admin)

Allez plus loin

  • Documentation officielle
    Vous pouvez consulter la documentation officielle sur le site de Spigot: wiki officiel.
  • PreventPortByPass
    Le plugin PreventPortByPass permet d'empêcher les joueurs de se connecter directement à vos serveurs Minecraft, sans passer par BungeeCord. Il ne sera plus possible de contourner votre proxy ;)
  • OnlyProxyJoin
    Le plugin OnlyProxyJoin est une alternative PreventPortByPass.