Tutoriel Installation et Configuration de Bungeecord

Kaeios

Architecte en herbe
13 Avril 2019
35
5
69
44
www.magicalsky.fr
Introduction à Bungeecord

Bungeecord est un programme créé par l’équipe de SpigotMc. Il agit comme un proxy entre le client du joueur et les différents serveurs qui liés à celui-ci. Les joueurs sur votre serveur ne verront aucune différence entre un serveur Minecraft classique et un serveur utilisant Bungeecord.
Bungeecord vous permettra de relier plusieurs serveurs Minecraft entre eux qu’ils soient sur une même machine ou bien sur des machines différentes, ce qui vous permet beaucoup de choses comme par exemple répartir la charge de travail aux différents serveurs, créer plusieurs modes de jeux, …
De plus, Bungeecord vous permet également d’utiliser des plugins que vous pourrez trouver dans la catégorie Bungee – Proxy de SpigotMc.

Installation

Avant de commencer à installer Bungeecord, il vous faut d’abord quelques pré-requis sur votre machine, avant de commencer vous devrez installer Java sur votre serveur car c’est avec ce langage qu’a été créé Bungeecord, si vous faites déjà tourner spigot sur votre machine, vous avez probablement déjà Java d’installé.

Vous devrez ensuite créer un dossier pour y placer Bungeecord et les fichiers qu’il va générer. Une fois bungeecord placé dans ce dossier vous pourrez lancer Bungeecord à l’aide de la commande suivante

Code:
java -Xms512M -Xmx512M -jar Bungeecord.jar

Si vous ne comprenez pas cette commande je vais expliquer ici chaque partie une par une.
On commence par le premier mot, java qui indique que l'on veut utiliser java.
Ensuite chaque “-” indique qu’on ajoute une option à cette commande pour lui indiquer quoi faire.

-Xms512M Cet argument sert à définir la quantité de mémoire vive disponible au moment du démmarage ici 512 et le M représente le prefix de l’unité (M pour méga, G pour giga), l’unité étant dans ce cas l’octet.
-Xmx512MCet argument sert à définir la quantité maximale de mémoire vive que le programme pourra utiliser.
-jarsert à préciser que l’on veut executer un fichier “.jar”
Bungeecord.jar – c’est le nom du programme que l’on veut lancer ici notre Bungeecord.

Si vous ne comprenez pas tout, ce n’est pas très grave mais je pense qu’il est toujours mieux de savoir ce que l’on fait lorsque l'on utilise un programme.

Cette commande n’est pas très facile à retenir et est assez longue à taper c’est pourquoi je vous recommande de créer un script pour la lancer plus facilement. Pour cela il vous suffit de créer un fichier supplémentaire dans le dossier avec votre Bungeecord voici la marche à suivre pour Windows et Linux.

il faut créer un fichier avec l’extension .sh (shell) par exemple “start.sh” et y mettre ceci:
Code:
#!/bin/sh

java -Xms512M -Xmx512M -jar Bungeecord.jar

la ligne #!/bin/sh indique à linux qu’il doit utiliser le shell classique
Avant d’executer ce script, vous devrez ajouter les permissions pour l’executer, avec la commande

Code:
chmod a+x start.sh

Sur linux il est recommandé d’installer le programme tmux afin de pouvoir lancer plusieurs serveurs à la fois, sinon vous serez bloqué dans la console du serveur. Si vous utilisez tmux vous devrez modifier le script comme ceci:

Code:
#!/bin/sh

tmux new-session -d -s bungeecord java -Xms512M -Xmx512M -jar Bungeecord.jar

Explications:
-d permet de lancer la session en mode détaché ignifie “modé détaché”, le script va donc s'éxecuter sans ouvrir la console.
-s permet de donner un nom à la session, ici : bungeecord

Il faut créer un script avec l’extension “.bat” et y mettre ceci:

Code:
@echo off

java -Xms512M -Xmx512M -jar Bungeecord.jar
pause

Ici le @echo off sert à masquer des informations peu utiles comme le chemin du fichier.
Ensuite on retrouve la commande pour lancer le programme, puis pause pour arrêter l’execution du script.

Configuration des serveurs spigot

Afin d’avoir une installation de Bungeecord la plus sécurisée possible, je vous conseil de bien suivre cette partie du tutoriel. Pour commencer il faut que vous sachiez que tout les serveurs Minecraft liés au Bungeecord doivent être en mode hors-ligne (crack) sinon Bungeecord ne fonctionnera pas.

Pour cela dans le fichier server.properties de tout les serveurs que vous allez liés à votre Bungeecord vous devrez mettre la valeur online-mode à false.
Vous en profiterez pour mettre la valeur server-ip à 127.0.0.1 pour que seul le Bungeecord puisse accéder au serveur.
Et la valeur network-compression-threshold à -1 pour désactiver la compression des packets envoyer à Bungeecord, en effet puisque dans cette configuration bungeecord communique avec les serveurs en local, compresser les packets avant de les envoyer serais une perte de temps et de ressources.

Dans le spigot.yml des serveurs que vous voulez liés au Bungeecord, vous devrez changer la valeur bungeecord pour le mettre à true.

Configuration de bungeecord

Dans cette partie, je vais détailler toutes les parties de la configuration de bungeecord point par point.
Tout d'abord il faut savoir que la valeur "true" signifie "vrai" donc activé et la valeur "false" signifie "faux" donc désactivé.

player_limitsPermet de définir le nombre de slots, “-1” pour infini.
ip_forwardCommunique l’ip et l’uuid des joueurs aux serveurs spigot, il est recommandé d’y mettre “true”.
permissionsPermet de créer des groupes de permissions, il est recommandé d’utiliser un plugin de permission plutôt que celles de la configuration.
timeoutCombien de temps le serveur peut rester sans répondres avant de séteindre.
log_commandsVrai, si les commandes doivent apparaitre dans les logs
online_mode"true" = Premium (En-Ligne) et "false" = Crack (Hors-Ligne)
query_portLe port utilisé par certains services pour faire des requêtes (ex: récupérer le MOTD)
motdLe message affiché dans la liste des serveurs.
prioritiesLa liste des serveurs sur lequel le joueur peut être connecté dans leur ordre de priorité
bind_local_addressUtile si vous avez des serveurs sur plusieurs machines
tab_listNe fonctionne pas dans les version superieur à la 1.8, permet de changer le fonctionnement de la tablist.
host l’ip et le port utilisé par le bungeecord 0.0.0.0:25565 pour l’ouvrir à tous, 127.0.0.1:25565 pour l’ouvrir en local.
forced_hostsForcer la connexion sur un serveur si une ip précise a été utilisé.
max_playersNombre de joueurs maximum affichés (ne limite pas les slots)
tab_sizeTaille maximale de la tablist
ping_passthroughPermet de récupérer le motd des serveurs avec l’utilisation de forced_hosts
force_default_serverVrai, si le joueur doit être redirigé sur le serveur par défaut à chaque connexion.
proxy_protocolPermet d’utiliser un protocol différent, utile pour des utilisateurs avancés.
disabled_commandsListe de commandes à désactiver
network_compression_thresholdA partir de quelle taille les packets doivent être compressés avant l’envoi.
groupsAssigner des groupes de permission aux joueurs.
connection_throttleDélai minimal entre deux connexions (en ms)
connection_throttle_limitNombre de connexions avant de bloquer la connexion du joueur pendant le délai défini.
statsIdentifiant unique pour mcstats (sert à bungeecord pour faire des statistiques)
forge_supportSi votre serveur supporte forge ou non
inject_commandsPermet d’activer l’auto complétion des commandes bungeecord (BETA)

Connexion d’un serveur spigot à Bungeecord

La partie servers de la configuration permet de lier des serveurs spigot au Bungeecord, pour ajouter un serveur, vous devez ajouter dans la partie servers une partie avec le nom de votre serveur, puis y ajouter la partie address avec pour valeur l’ip et le port du serveur spigot (127.0.0.1:NOMBRE_DU_PORT en local), et la partie motd sert à définir un motd spécifique à ce serveur, et la partie restricted sert à restreindre l’accès au serveur par une permission (bungeecord.server.NOM_DU_SERVEUR)
Une fois que votre Bungeecord est configuré vous n’avez plus qu’à le démarrer avec votre script.

Aller plus loin

Je n'ai pas pu couvrir toutes les fonctionnalités de Bungeecord dans ce tutoriel, je mets donc des liens qui peuvent vous être utile pour aller plus loin ou vous aider dans son installation ainsi que les liens des articles qui m'ont permis de rédiger ce tutoriel.

Un autre tutoriel sur ce forum avec des informations complémentaires
https://minecraft.fr/forum/threads/...erveurs-entre-eux-epicube-hypixel-etc.138115/

Téléchargement de Bungeecord
https://ci.md-5.net/job/BungeeCord/

Wiki Bungeecord officiel (Anglais)
https://www.spigotmc.org/wiki/bungeecord/

Tmux
https://doc.ubuntu-fr.org/tmuxtmux [Wiki ubuntu-fr] (ubuntu-fr.org)

Arguments Java
https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html

RedisBungee (Plugin permettant de lier plusieurs Bungeecord)
https://www.spigotmc.org/resources/redisbungee.13494/

Iptables (un logiciel permettant de sécuriser son serveur Linux)
https://help.ubuntu.com/community/IptablesHowTo
 
Dernière édition:

Kaeios

Architecte en herbe
13 Avril 2019
35
5
69
44
www.magicalsky.fr
Salut, je ne connais pas beaucoup de proxys alternatifs autres que Waterfall (un fork de bungee) et Lilypad. Où as-tu vu que le support des mods va être retiré après la 1.13 ? Je n'ai pas réussi à trouver d'informations à ce sujet.
 

Saphirr

Aventurier
29 Mars 2020
5
0
1
19
ça c'est le dossier spigot.yml ? Bukkit.yml ? car le seul fichier nommer config.yml est dans plugin
 

Saphirr

Aventurier
29 Mars 2020
5
0
1
19
# This is the main configuration file for Spigot.
# As you can see, there's tons to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
# For a reference for any variable inside this file, check out the Spigot wiki at
# http://www.spigotmc.org/wiki/spigot-configuration/
#
# If you need help with the configuration or have any questions related to Spigot,
# join us at the IRC or drop by our forums and leave a post.
#
# IRC: #spigot @ irc.spi.gt ( http://www.spigotmc.org/pages/irc/ )
# Forums: http://www.spigotmc.org/

config-version: 10
settings:
debug: false
save-user-cache-on-stop-only: false
filter-creative-items: true
moved-wrongly-threshold: 0.0625
moved-too-quickly-multiplier: 10.0
user-cache-size: 1000
late-bind: false
int-cache-limit: 1024
player-shuffle: 0
item-dirty-ticks: 20
sample-count: 12
bungeecord: true
timeout-time: 60
restart-on-crash: true
restart-script: ./start.sh
attribute:
maxHealth:
max: 2048.0
movementSpeed:
max: 2048.0
attackDamage:
max: 2048.0
netty-threads: 4
commands:
tab-complete: 0
silent-commandblock-console: false
replace-commands:
- setblock
- summon
- testforblock
- tellraw
log: true
spam-exclusions:
- /skill
messages:
whitelist: You are not whitelisted on this server!
unknown-command: Unknown command. Type "/help" for help.
server-full: The server is full!
outdated-client: Outdated client! Please use {0}
outdated-server: Outdated server! I'm still on {0}
restart: Server is restarting
stats:
disable-saving: false
forced-stats: {}
world-settings:
default:
verbose: true
arrow-despawn-rate: 1200
max-tick-time:
tile: 50
entity: 50
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
random-light-updates: false
growth:
cactus-modifier: 100
cane-modifier: 100
melon-modifier: 100
mushroom-modifier: 100
pumpkin-modifier: 100
sapling-modifier: 100
wheat-modifier: 100
netherwart-modifier: 100
vine-modifier: 100
cocoa-modifier: 100
entity-activation-range:
animals: 32
monsters: 32
misc: 16
ticks-per:
hopper-transfer: 8
hopper-check: 8
hopper-amount: 1
save-structure-info: true
hunger:
jump-walk-exhaustion: 0.05
jump-sprint-exhaustion: 0.2
combat-exhaustion: 0.1
regen-exhaustion: 6.0
swim-multiplier: 0.01
sprint-multiplier: 0.1
other-multiplier: 0.0
max-tnt-per-tick: 100
mob-spawn-range: 4
merge-radius:
item: 2.5
exp: 3.0
item-despawn-rate: 6000
enable-zombie-pigmen-portal-spawns: true
wither-spawn-sound-radius: 0
hanging-tick-frequency: 100
zombie-aggressive-towards-villager: true
view-distance: 10
dragon-death-sound-radius: 0
seed-village: 10387312
seed-feature: 14357617
nerf-spawner-mobs: false