Comment faire entrer le bot DzBot dans votre serveur — et faire entrer Bedrock dans votre Java
Pas à pas, avec les commandes prêtes à copier. Tout ici a été mesuré sur un vrai serveur Paper 26.3 : le bot est entré par le panneau et Geyser a traduit le client Bedrock.
À lire avant de toucher la moindre configuration
Ce guide, c’est ce qui MARCHE, mesuré — pas la liste de ce que DzBot promet. Ce qui ne marche pas encore est écrit dans la section « Ce qui ne marche TOUJOURS PAS », et il y est écrit parce que ça a été mesuré. Quand quelque chose diffère chez vous, l’erreur renvoyée par votre serveur est écrite à côté de l’étape.
CE QUI NE MARCHE TOUJOURS PAS (en bref)
La liste complète, avec la raison de chaque point, est en bas de cette page :
- NetherNet est déjà activé dans Geyser, mais les ports restent à ouvrir sur le routeur (UDP 19133 et TCP 19132).
- Avec la connexion Bedrock désactivée, n’importe qui peut entrer sous le nom d’un autre.
- Le bot Bedrock n’a pas de XUID : il n’est pas opérateur via Xbox, seulement via ops.json.
- GrimAC a enregistré 277 violations pour le bot : il entre sur le serveur, mais l’anticheat ne l’accepte pas encore comme un client légitime.
- GrimAC avertit que ViaBackwards sur un serveur 1.21.2+ est « currently unsupported » (cela concerne les véhicules avec d’anciens clients).
Le chemin, pas à pas
Java 25 — sans lui, le serveur n’ouvre même pas le port
À partir de la 26.1, Paper exige Java 25 ou plus récent. Avec Java 21, le processus meurt avant l’ouverture du port, et le message se lit dans le log — pas à l’écran.
java -version
ls /usr/lib/jvm/openjdk version "25.0.4.1" 2026-08-18
OpenJDK Runtime Environment (build 25.0.4.1)
OpenJDK 64-Bit Server VM (build 25.0.4.1, mixed mode, sharing)Sur cette machine, Java 25 est dans /usr/lib/jvm/java-25-openjdk/bin/java — et c’est ce chemin qui entre dans la commande de lancement du serveur (étape 5).
Minecraft 26.1 and newer requires running the server with Java 25 or aboveSur Ubuntu/Debian : sudo apt install openjdk-25-jdk · Le build de Paper utilisé pour la mesure est le 211 — c’est ce que le serveur annonce : 26.3-211-main@2d602d6. Le fichier du serveur s’appelle paper-26.3-40.jar : le nom vient d’un ancien build et a été gardé parce que le script qui le lance pointe dessus.
eula.txt, server.properties et ops.json
Trois fichiers. Le premier est l’acceptation de la licence ; le deuxième dit comment le serveur se comporte ; le troisième est celui qui donne l’opérateur en mode hors ligne.
eula=trueSans cela le serveur ne démarre pas : il s’arrête au premier démarrage pour demander l’acceptation et n’ouvre jamais le port.
server-port=25565
online-mode=false
level-type=minecraft\:flat
difficulty=peaceful
gamemode=survival
spawn-protection=0
white-list=false
view-distance=6
max-players=20server-port=25565Le port TCP de Java. C’est le même que vous saisissez dans le panneau.online-mode=falsePas de compte Microsoft. C’est ce qui laisse le bot entrer avec un nom et sans mot de passe — et c’est ce qui rend l’UUID « hors ligne » (voir ops.json).level-type=minecraft\:flatMonde plat. Le «\:» est l’échappement de Java lui-même : sans lui, le serveur ne lit pas la ligne.difficulty=peacefulLa valeur mesurée sur le serveur de test. Elle ne change pas l’entrée du bot — elle change le jeu (pas de monstres, pas de faim).gamemode=survivalPareil : la valeur mesurée. Le bot entre en survie.spawn-protection=0Pas de protection du point de départ : le bot peut creuser et construire partout, y compris au spawn.white-list=false⛔ Paper 26.3 arrive avec white-list=true. Avec la liste blanche activée, celui qui entre est expulsé aussitôt — et le bot n’apparaît même pas.view-distance=6Combien de chunks le serveur envoie. C’est le rayon de monde que le bot voit.max-players=20La valeur mesurée sur le serveur de test.
⛔ La liste blanche, c’est l’erreur numéro un
Paper 26.3 démarre avec white-list=true. Avec la liste blanche activée, le serveur expulse celui qui entre avec « You are not whitelisted on this server! » — et le bot n’arrive même pas au panneau. Mettez false.
[
{
"uuid": "6dab31a9-d6e5-37ee-bfd9-83901093485f",
"name": "DuGueDark",
"level": 4,
"bypassesPlayerLimit": false
},
{
"uuid": "0ca09961-3774-3c9d-b7a6-af349b4a773f",
"name": "DzBot",
"level": 4,
"bypassesPlayerLimit": false
}
]Avec online-mode=false, le serveur calcule l’UUID de chaque joueur à partir du nom : le md5 de « OfflinePlayer:<nom> », version 3. Cette UUID n’est PAS l’UUID premium du compte Microsoft. Mesuré sur ce serveur : DzBot → 0ca09961-3774-3c9d-b7a6-af349b4a773f et DuGueDark → 6dab31a9-d6e5-37ee-bfd9-83901093485f.
Le piège : la console répond « Nothing changed. The player is already an operator » et le joueur n’est TOUJOURS pas opérateur. Pourquoi : l’UUID enregistré était celui du compte premium, alors que le serveur cherche l’UUID hors ligne. Avec le bon ops.json, la console cesse de se plaindre.
Le raccourci qui marche toujours : tapez /op DzBot dans la console du serveur. Elle calcule l’UUID toute seule et écrit la bonne dans ops.json.
Les plugins qui fonctionnent en 26.3
Tous ceux-ci ont été chargés par Paper 26.3 build 211 et se sont bien comportés. GrimAC est le plus utile : c’est le « grillon » qui mesure si le bot a posé le bloc AVEC ligne de vue.
- Geyser-Spigot2.12.0-b1268
Laisse le client Bedrock entrer sur le serveur Java (et traduit le protocole).
download.geysermc.org - Floodgate-Spigot2.2.5 (build 141)
L’identité Bedrock : c’est elle qui signe le nom du joueur qui entre par Geyser.
download.geysermc.org - ViaVersion5.12.2-SNAPSHOT
Ancien client Java sur serveur nouveau (celui qui entre en 1.20 ou 1.21).
modrinth.com - ViaBackwards5.12.2-SNAPSHOT
Ancien serveur pour client nouveau — le chemin inverse de ViaVersion.
modrinth.com - GrimAC2.3.75-8baa16f
Anticheat. Il vous dit, par son nom, quand le bot a fait quelque chose qu’il ne fallait pas.
modrinth.com
GrimAC, c’est votre instrument de mesure
Il signale FarPlace (le bot a posé le bloc de trop loin) et RotationPlace (posé avec la mauvaise rotation). Si le bot échoue à poser un bloc, GrimAC en donne la raison exacte — c’est pourquoi il reste sur le serveur de test. Et le plus important : GrimAC signale aussi le BOT LUI-MÊME, avec le nom de la règle. Les drapeaux ci-dessous sont le comportement mesuré du bot, pas un faux positif de l’anticheat. GrimAC avertit aussi dans le log que ViaBackwards sur un serveur 1.21.2+ est « currently unsupported ».
- 121×Postpaquets envoyés hors de l’ordre attendu des ticks de mouvement
- 67×Simulationle bot s’est déplacé différemment de ce que la simulation prévoyait
- 39×RotationPlacea posé un bloc sans le regarder
- 20×FarPlacea posé un bloc depuis trop loin
- 18×GroundSpoofa prétendu être au sol alors que la simulation dit le contraire
- 9×AntiKBn’a pas pris le knockback attendu (le bot annule la poussée)
- 3×AimModulo360a envoyé un grand saut de yaw d’un coup
277 violations pour DzBot et 0 pour le joueur humain (mesuré dans la base de GrimAC, plugins/GrimAC/data/history.v1.db). Pour que le bot ne soit pas signalé, il faut faire ce que fait un client légitime : la bonne portée, la bonne face, au sol, sans action d’entité superflue et avec un rythme humain.
⛔ N’utilisez pas un plugin de sac à dos qui envoie un resource pack
BackpackPlus 3.2.0 a été retiré du serveur de test parce qu’il envoie un resource pack (pack/resourcepack.zip) et que le client du bot échouait au rechargement des ressources. Si vous voulez un sac à dos, choisissez-en un qui n’envoie pas de pack — ou admettez que le bot peut le perdre au rechargement.
Geyser : les TROIS clés qu’exige le Bedrock hors ligne
Geyser transforme le client Bedrock en Java. Sans les DEUX premières clés ci-dessous, le bot Bedrock est refusé avec « §rFaça login no Xbox para ingressar neste servidor » — et ce n’est ni un problème de port, ni de version, ni de pare-feu. La troisième (NetherNet) est le nouveau chemin Bedrock et ne change pas l’entrée du bot : elle change ce que le routeur doit laisser passer.
Le fichier est plugins/Geyser-Spigot/config.yml.
1) auth-type: floodgate
Section java: — la valeur par défaut est online
java:
auth-type: floodgateDit à Geyser que l’identité Bedrock vient de Floodgate, et non d’une connexion Microsoft.
2) validate-bedrock-login: false
Section advanced: → bedrock: — la valeur par défaut est true
advanced:
bedrock:
validate-bedrock-login: falseC’est la clé qui refuse la connexion Bedrock auto-signée. Le bot hors ligne signe son propre nom : elle doit donc être désactivée.
3) NetherNet (le nouveau chemin Bedrock)
Section bedrock: → signaling: — la valeur par défaut est transport: raknet
bedrock:
port: 19132
webrtc-port: 19133
transport: both
signaling:
mode: builtinGeyser a averti que NetherNet n’était pas activé et que, à partir du 27 octobre, Bedrock passe à l’utiliser. Avec ces clés, l’avertissement disparaît et le log dit : « Built-in signaling started on http://0.0.0.0:19132, with NetherNet on UDP port 19133 ». ⚠️ Il manque encore la redirection de ports sur le routeur : UDP 19133 et TCP 19132. Mesuré ici : la découverte STUN a mappé cet hôte sur le port public 32563, qui n’est pas 19133 — signe que le NAT du fournisseur change le port. Si le vôtre ne laisse pas passer le même port, mettez votre IP publique dans signaling: → advertise-addresses:.
Le panneau continue d’utiliser le port UDP 19132 de Geyser pour Bedrock : NetherNet ne change pas le champ du panneau, il change ce que le routeur doit laisser passer.
⚠️ Cela ouvre une faille — lisez avant d’appliquer
Avec validate-bedrock-login désactivé, N’IMPORTE QUI peut entrer sous le nom de n’importe qui d’autre. Geyser le dit lui-même dans le fichier : « Disabling Bedrock authentication for other use-cases is NOT SUPPORTED, as it allows anyone to spoof usernames, and is therefore a security risk. » Si le serveur est le vôtre et celui du bot, ça va. S’il est public et qu’il a de l’XP, un classement ou du PvP, la bonne solution est de laisser la connexion Bedrock activée (true) et d’utiliser un vrai compte Xbox pour le bot — là, le bot n’est plus hors ligne (et il gagne un XUID).
Les deux clés ne prennent effet qu’après un redémarrage du serveur.
La console du serveur (en FIFO)
Si vous avez lancé le serveur avec un & à la fin de la ligne, la console disparaît quand le terminal se ferme. La façon d’avoir une vraie console sous Linux, c’est un FIFO : un fichier que le java lit en entrée et dans lequel vous écrivez avec echo.
cd /home/duguedark/Servers/dzbot-26.3
JAVA=/usr/lib/jvm/java-25-openjdk/bin/java
[ -p consola ] || mkfifo consola
setsid "$JAVA" -Xms512M -Xmx1200M -jar paper-26.3-40.jar --nogui < consola > saida.log 2>&1 &
sleep 100000 > consola &⛔ Sans l’écrivain vivant, le java SE BLOQUE
La dernière ligne (sleep 100000 > consola &) n’est pas décorative : c’est l’écrivain qui garde le FIFO ouvert. Sans elle, le java se bloque à l’ouverture du FIFO — le serveur ne démarre pas, n’ouvre pas le port et n’écrit RIEN dans le log. Le classique « ça ne marche pas et ça ne dit pas pourquoi ».
Envoyer une commande
echo "op DzBot" > consolaCe que la console écrit revient dans saida.log. Et c’est par la console qu’on donne /tp et /give au bot — jamais par le chat (voir les pièges).
Les champs exacts dans le panneau
Une fois le serveur debout, le bot entre par le panneau DzBot. Voici les valeurs mesurées :
- HostJava
127.0.0.1Bedrock127.0.0.1 - PortJava
25565Bedrock19132 - VersionJava
26.3Bedrock1.26.51 - Nom d’utilisateurJava
DzBotBedrockDzBot - AuthJava
offlineBedrockoffline
Le port Bedrock est le port UDP de Geyser (19132 par défaut), pas celui de Java. Si tu as changé le port dans le config.yml de Geyser, c’est celui-là qu’il faut mettre ici.
La version 26.3 est celle que le panneau propose pour Java, et la 1.26.51 pour Bedrock. Si votre build Bedrock est un autre, prenez l’équivalent.
auth: offline en Bedrock, c’est ce qui donne au bot une identité sans compte Xbox. Le prix : pas de XUID — le bot n’est pas opérateur via Xbox, seulement via ops.json (niveau 4, comme les autres).
DzBot[/127.0.0.1:52214] logged in with entity id 103 at ([minecraft:overworld]7.45, -60.0, 0.39)Après le démarrage, le log du serveur montre la preuve : DzBot[/127.0.0.1:52214] logged in with entity id 103 — c’est cette ligne qui dit que le bot est entré.
Pièges mesurés
Ceux qui ont vraiment coûté du temps sur ce serveur de test.
La liste blanche expulse le bot
Paper 26.3 arrive avec white-list=true. Celui qui entre est expulsé avec « You are not whitelisted on this server! » — et le bot n’apparaît jamais dans le panneau.
Un FIFO sans écrivain bloque le java
Sans le sleep 100000 > consola &, le processus se bloque à l’ouverture du FIFO : pas de démarrage, pas de port, rien dans le log.
Le filtre anti-spam de Paper expulse le bot
Chaque message de chat compte. Trois commandes de chat = un kick. Pour déplacer le bot, utilisez /tp et /give depuis la console, jamais depuis le chat.
L’UUID hors ligne n’est pas l’UUID premium
En mode hors ligne, l’UUID est le md5 de « OfflinePlayer:'<nom>' ». Si ops.json contient l’UUID du compte Microsoft, la console dit « Nothing changed… » et le joueur reste sans opérateur.
Geyser sans les deux clés refuse le client Bedrock
Le symptôme est « Faça login no Xbox para ingressar neste servidor » — et ça ressemble à un problème de compte, alors que c’est de la configuration Geyser.
Java 21 ne démarre pas la 26.3
Le processus meurt avec « Minecraft 26.1 and newer requires running the server with Java 25 or above ».
Ce qui ne marche TOUJOURS PAS
Cette section est l’inverse du reste du guide, exprès. C’est la liste de ce qui a été mesuré et qui n’a PAS marché — et c’est la liste que le propriétaire de DzBot a demandée, écrite à l’écran.
La redirection de ports du NetherNet n’est pas encore faite
NetherNet est déjà activé dans la configuration (transport: both, webrtc-port: 19133, signaling: → mode: builtin) et l’avertissement de Geyser a disparu. Ce qui manque, c’est d’ouvrir les ports sur le routeur : UDP 19133 et TCP 19132. Mesuré sur cette machine : la découverte STUN a mappé l’hôte sur le port public 32563 — pas 19133 —, donc le NAT du fournisseur change le port, et un client Bedrock depuis l’extérieur du réseau n’arrive pas encore par le nouveau chemin.
N’importe qui peut falsifier un nom (en mode hors ligne)
C’est le prix à payer pour avoir désactivé validate-bedrock-login et que le bot hors ligne puisse entrer. Sur un serveur public, c’est une vraie faille, et Geyser le signale dans son propre fichier de configuration.
Le bot Bedrock n’a pas de XUID
Sans compte Xbox, le bot n’a pas de XUID : il n’est pas opérateur via Xbox et il ne figure dans aucune liste de permissions du compte. L’opérateur vient de ops.json, et de nulle part ailleurs.
L’anticheat signale le bot (277 fois)
GrimAC a enregistré 277 violations pour DzBot — 121 Post, 67 Simulation, 39 RotationPlace, 20 FarPlace, 18 GroundSpoof, 9 AntiKB et 3 AimModulo360 — contre 0 pour le joueur humain. C’est le vrai comportement du bot : l’ordre des paquets de mouvement, le mouvement lui-même, la rotation au moment de poser, la portée, l’affirmation d’être au sol, le knockback et le saut de yaw. Le bot entre sur le serveur, mais ce n’est pas encore un client que l’anticheat considère comme légitime. La sortie : faire ce que fait un client légitime — la bonne portée, la bonne face, au sol, sans action d’entité superflue et avec un rythme humain.
ViaBackwards sur un serveur 1.21.2+ est « currently unsupported »
L’avertissement vient de GrimAC : « This setup is currently unsupported and you will experience issues with older clients using vehicles. » Cela ne concerne pas le bot — cela concerne les véhicules avec d’anciens clients.
Rien ici n’est une promesse de mise à jour : c’est l’état du 22/10/2026. Ce qui change est écrit — et la date change avec.
Et maintenant : où continuer dans le panneau
Le guide s’arrête ici, le travail non. Voici les écrans qui poursuivent la route.
- Créer et démarrer le botL’écran du bot, où l’on saisit l’hôte, le port, la version et le nom d’utilisateur de l’étape 6.
- Onglet des plugins du botLà où les plugins du serveur sont lus et activés — l’étape 3 de ce guide apparaît ici depuis l’autre côté.
- Documentation de l’APIPour piloter le bot avec un script et une clé d’accès, au lieu de cliquer.
- Guide réseauRakNet, NetherNet, ports et le diagnostic Geyser/Floodgate.
- Guide des modsQuand le serveur est Forge ou Fabric : ce que le bot peut et ne peut pas faire.
- DzBot RunnerFaire tourner le bot sur votre machine, plutôt que sur le serveur de la plateforme.
- Vitrine MinecraftLe serveur de démonstration de DzBot, pour voir le bot fonctionner avant de toucher au vôtre.