# Comment relier plusieurs serveurs avec BungeeCord ## Qu'est-ce que BungeeCord ? BungeeCord est un proxy qui permet de : - **Relier plusieurs serveurs** Minecraft ensemble - **Permettre aux joueurs** de se déplacer entre serveurs sans se déconnecter - **Créer un réseau** de serveurs (lobby, mini-jeux, survie, etc.) - **Centraliser la connexion** des joueurs sur un seul point d'entrée ## Architecture du réseau Un réseau BungeeCord typique contient : - **1 serveur BungeeCord** (proxy) : Point d'entrée pour tous les joueurs - **Plusieurs serveurs Minecraft** (backend) : Lobby, survie, créatif, mini-jeux, etc. Les joueurs se connectent au proxy BungeeCord, qui les redirige vers les serveurs backend. ## Prérequis - Accès à votre panel de gestion - Au moins 2 serveurs Minecraft (ou la capacité d'en créer plusieurs) - Ports disponibles pour chaque serveur - Connaissance des adresses IP de vos serveurs ## Étape 1 : Créer les serveurs backend ### Serveurs nécessaires Vous aurez besoin d'au moins : 1. **Un serveur BungeeCord** (le proxy) 2. **Un serveur Lobby** (serveur d'accueil) 3. **Un ou plusieurs serveurs de jeu** (survie, créatif, mini-jeux, etc.) ### Créer les serveurs 1. Connectez-vous à votre panel de gestion 2. Créez un nouveau serveur pour chaque instance nécessaire 3. Notez les informations suivantes pour chaque serveur : - Adresse IP - Port - Nom du serveur Exemple : - Proxy BungeeCord : `127.0.0.1:25565` - Lobby : `127.0.0.1:25566` - Survie : `127.0.0.1:25567` - Mini-jeux : `127.0.0.1:25568` ## Étape 2 : Installer BungeeCord ### Télécharger BungeeCord 1. Rendez-vous sur [https://ci.md-5.net/job/BungeeCord/](https://ci.md-5.net/job/BungeeCord/) 2. Téléchargez la dernière version stable ### Installer sur le serveur proxy 1. Connectez-vous à votre serveur proxy 2. Supprimez ou renommez le fichier JAR Spigot/Paper existant 3. Uploadez le fichier `BungeeCord.jar` 4. Renommez-le si nécessaire (selon votre panel) 5. Démarrez le serveur une première fois pour générer les fichiers de configuration 6. Arrêtez le serveur ## Étape 3 : Configurer BungeeCord ### Éditer config.yml Ouvrez le fichier `config.yml` dans le dossier du proxy BungeeCord. #### Configuration de base ```yaml listeners: - query_port: 25577 motd: '&6Mon Réseau Minecraft' priorities: - lobby bind_local_address: true tab_list: GLOBAL_PING query_enabled: false proxy_protocol: false forced_hosts: pvp.example.com: pvp hub.example.com: lobby ping_passthrough: false max_players: 100 tab_size: 60 force_default_server: false host: 0.0.0.0:25565 ``` #### Ajouter les serveurs backend Dans la section `servers`, ajoutez vos serveurs : ```yaml servers: lobby: motd: '&aServeur Lobby' address: localhost:25566 restricted: false survie: motd: '&2Serveur Survie' address: localhost:25567 restricted: false minijeux: motd: '&cServeur Mini-Jeux' address: localhost:25568 restricted: false ``` #### Paramètres importants ```yaml # Serveur par défaut où les joueurs arrivent priorities: - lobby - survie # Permissions groups: admin: - bungeecord.command.alert - bungeecord.command.end - bungeecord.command.ip - bungeecord.command.reload ``` ### Configuration réseau avancée Si vos serveurs sont sur des machines différentes : ```yaml servers: lobby: address: 192.168.1.10:25565 restricted: false survie: address: 192.168.1.11:25565 restricted: false ``` ## Étape 4 : Configurer les serveurs backend ### Modifier spigot.yml Sur **chaque serveur backend** (lobby, survie, etc.), ouvrez `spigot.yml` : ```yaml settings: bungeecord: true ``` **IMPORTANT** : Cette option doit être activée sur tous les serveurs backend, sinon BungeeCord ne fonctionnera pas correctement. ### Modifier server.properties Sur **chaque serveur backend**, modifiez `server.properties` : ```properties online-mode=false ``` **ATTENTION** : Mettez `online-mode=false` uniquement sur les serveurs backend, JAMAIS sur le proxy BungeeCord qui doit rester en `online-mode=true`. ### Sécuriser les serveurs backend Pour éviter que les joueurs se connectent directement aux serveurs backend, ajoutez un pare-feu ou utilisez un plugin comme IPWhitelist. #### Option 1 : Pare-feu Configurez votre pare-feu pour n'autoriser que le proxy BungeeCord à se connecter aux serveurs backend. #### Option 2 : Plugin IPWhitelist 1. Installez IPWhitelist sur chaque serveur backend 2. Configurez-le pour n'autoriser que l'IP du proxy ## Étape 5 : Installer les plugins essentiels ### Sur le proxy BungeeCord Créez un dossier `plugins` et installez : **LuckPerms** (gestion des permissions réseau) : - Téléchargez depuis [https://luckperms.net/](https://luckperms.net/) - Utilisez la version BungeeCord **BungeeTabListPlus** (tablist personnalisée) : - Améliore l'affichage de la liste des joueurs **BungeePortals** (portails entre serveurs) : - Permet de créer des portails physiques pour changer de serveur ### Sur les serveurs backend Installez sur chaque serveur backend : **LuckPerms** (version Spigot/Paper) : - Pour synchroniser les permissions avec le proxy **Multiverse-Core** (optionnel) : - Pour gérer plusieurs mondes sur un même serveur ## Étape 6 : Synchroniser les données ### Base de données partagée (recommandé) Pour partager les permissions, économie, etc. entre serveurs : 1. Créez une base de données MySQL/MariaDB 2. Configurez LuckPerms pour utiliser cette base de données 3. Tous les serveurs utiliseront la même base Configuration LuckPerms (`config.yml`) : ```yaml storage-method: mysql data: address: localhost:3306 database: luckperms username: root password: votre_mot_de_passe ``` ### Plugins de synchronisation Installez des plugins pour synchroniser : - **Économie** : Vault + base de données partagée - **Grades** : LuckPerms avec MySQL - **Inventaires** : Multiverse-Inventories ou similaire ## Étape 7 : Démarrer le réseau ### Ordre de démarrage 1. **Démarrez tous les serveurs backend** (lobby, survie, etc.) 2. Attendez qu'ils soient complètement chargés 3. **Démarrez le proxy BungeeCord** ### Tester la connexion 1. Connectez-vous avec votre client Minecraft à l'adresse du proxy 2. Vous devriez arriver sur le serveur lobby 3. Testez les commandes : ``` /server lobby /server survie /server minijeux ``` ## Commandes BungeeCord essentielles ### Pour les joueurs ``` /server ``` Liste tous les serveurs disponibles ``` /server ``` Se téléporter vers un serveur spécifique ### Pour les administrateurs ``` /glist ``` Affiche la liste des joueurs sur tous les serveurs ``` /alert ``` Envoie un message à tous les joueurs du réseau ``` /send ``` Envoie un joueur vers un serveur spécifique ``` /end ``` Arrête le proxy BungeeCord ``` /greload ``` Recharge la configuration ## Configuration avancée ### MOTD personnalisé Modifiez le message de bienvenue dans `config.yml` : ```yaml listeners: - motd: |- &6&l✦ Mon Réseau Minecraft ✦ &e» Survie &7| &cMini-Jeux &7| &aÉvénements ``` ### Serveurs forcés par sous-domaine Redirigez automatiquement selon le sous-domaine : ```yaml forced_hosts: lobby.monserveur.com: lobby survie.monserveur.com: survie minijeux.monserveur.com: minijeux ``` ### Limiter l'accès à certains serveurs ```yaml servers: vip: address: localhost:25569 restricted: true ``` Puis donnez la permission `bungeecord.server.vip` aux joueurs VIP. ## Créer un lobby fonctionnel ### Plugins recommandés pour le lobby - **ServerSelector** : Menu de sélection de serveurs - **HolographicDisplays** : Affichage d'informations flottantes - **DeluxeHub** : Suite complète pour lobby - **Multiverse-Core** : Gestion du monde lobby ### Configuration ServerSelector Créez des items dans l'inventaire permettant de changer de serveur : ```yaml items: survie: material: GRASS_BLOCK slot: 2 name: '&2Serveur Survie' lore: - '&7Cliquez pour rejoindre' server: survie minijeux: material: DIAMOND_SWORD slot: 4 name: '&cMini-Jeux' lore: - '&7Cliquez pour rejoindre' server: minijeux ``` ## Résolution des problèmes ### Les joueurs ne peuvent pas se connecter - Vérifiez que le proxy BungeeCord est démarré - Vérifiez que `online-mode=false` sur les serveurs backend - Vérifiez que `bungeecord: true` dans `spigot.yml` des serveurs backend - Vérifiez les adresses IP et ports dans `config.yml` ### Erreur "Can't connect to server" - Vérifiez que les serveurs backend sont démarrés - Vérifiez les adresses dans `config.yml` - Testez la connexion directe aux serveurs backend - Vérifiez les pare-feu ### Les permissions ne fonctionnent pas - Installez LuckPerms sur le proxy ET tous les serveurs backend - Configurez une base de données MySQL partagée - Vérifiez la synchronisation entre serveurs ### Les joueurs ont des inventaires dupliqués - Les inventaires ne sont pas synchronisés par défaut - Installez un plugin de synchronisation d'inventaires - Ou gardez des inventaires séparés par serveur (recommandé) ### Commande /server introuvable - La commande est gérée par BungeeCord - Vérifiez que le joueur est bien connecté via le proxy - Vérifiez que BungeeCord fonctionne correctement ## Conseils de sécurité ### Protection contre les attaques 1. **N'exposez pas les serveurs backend** : Seul le proxy doit être accessible publiquement 2. **Utilisez un pare-feu** : Bloquez les connexions directes aux serveurs backend 3. **Installez un anti-DDoS** : Protégez le proxy contre les attaques 4. **Mettez à jour régulièrement** : Gardez BungeeCord à jour ### Sauvegardes Sauvegardez régulièrement : - Configuration BungeeCord (`config.yml`) - Configurations des serveurs backend - Base de données partagée - Mondes de chaque serveur ## Optimisation des performances ### Allocation RAM Répartissez la RAM intelligemment : - Proxy BungeeCord : 512 MB - 1 GB minimum - Serveur Lobby : 2-3 GB - Serveurs de jeu : 3-6 GB selon la charge ### Réduire la latence - Hébergez tous les serveurs au même endroit si possible - Utilisez des connexions locales (`localhost`) quand possible - Optimisez chaque serveur individuellement ## Conclusion BungeeCord vous permet de créer un réseau professionnel de serveurs Minecraft. Cette configuration offre une expérience fluide aux joueurs qui peuvent naviguer entre différents univers sans se déconnecter. N'oubliez pas de bien sécuriser vos serveurs backend et de mettre en place une base de données partagée pour synchroniser les données importantes.