Protocole de serveur classique – Le wiki officiel de Minecraft – Resoudre les problemes d’un serveur MineCraft
Author: Titanfall —
Short summary: Avertissement ! La traduction française des termes techniques n'est pas nécessairement très bonne. Si vous souhaitez plus d'informations sur certains points techniques, rendez-vous sur la page en anglais. Documentation du protocole de serveur utilisé par les serveurs Minecraft Classic. Pulsations cardiaques[[[[Éditer | modifier le wikicode] Pour pouvoir se connecter à un serveur Minecraft Classic à […]
Quick overview
- Site
- Tutos GameServer
- Canonical URL
- https://tutos-gameserver.fr/2020/03/16/protocole-de-serveur-classique-le-wiki-officiel-de-minecraft-resoudre-les-problemes-dun-serveur-minecraft/
- LLM HTML version
- https://tutos-gameserver.fr/2020/03/16/protocole-de-serveur-classique-le-wiki-officiel-de-minecraft-resoudre-les-problemes-dun-serveur-minecraft/llm
- LLM JSON version
- https://tutos-gameserver.fr/2020/03/16/protocole-de-serveur-classique-le-wiki-officiel-de-minecraft-resoudre-les-problemes-dun-serveur-minecraft/llm.json
- Manifest
- https://tutos-gameserver.fr/llm-endpoints-manifest.json
- Estimated reading time
- 5 minutes (283 seconds)
- Word count
- 942
Key points
- Avertissement !
- La traduction française des termes techniques n'est pas nécessairement très bonne.
- Si vous souhaitez plus d'informations sur certains points techniques, rendez-vous sur la page en anglais.
- Documentation du protocole de serveur utilisé par les serveurs Minecraft Classic.
Primary visual
Structured content
Avertissement ! La traduction française des termes techniques n'est pas nécessairement très bonne. Si vous souhaitez plus d'informations sur certains points techniques, rendez-vous sur la page en anglais.
Documentation du protocole de serveur utilisé par les serveurs Minecraft Classic.
Pulsations cardiaques[[[[Éditer | modifier le wikicode] Pour pouvoir se connecter à un serveur Minecraft Classic à partir de la liste des serveurs, le serveur doit envoyer à minecraft.net un "battement de coeur" (environ "battement de coeur") toutes les minutes, environ.
Le serveur stocke ce rythme cardiaque pendant 45 secondes.
Le «battement de cœur» prend la forme d'une demande HTTP sur http://www.minecraft.net/heartbeat.jsp. Après avoir envoyé la pulsation, l'URL du serveur est renvoyée.
Cela peut être une demande POST ou GET. Voici le tableau des paramètres ci-dessous:
Nom Détails
port Le port du serveur. La valeur par défaut est 25565
max Le quota maximum de joueurs sur le serveur.
Nom Le nom du serveur.
Publique Si le serveur est public (c'est-à-dire s'il apparaît dans la liste) ou non. Cela peut être Vrai ou Faux (même forme).
version Historique des versions, normalement la version doit être 0x07.
sel Une clé aléatoire de 16 caractères en base 62 (appelée "sel" ou "grain de sel")
utilisateurs Le nombre de joueurs actuellement connectés au serveur.
La façon la plus simple d'envoyer un battement de cœur est d'ouvrir un socket TCP sur le port 80 à l'adresse suivante: www.minecraft.net, et d'envoyer les valeurs (qui doivent être modifiées, bien sûr).
GET /heartbeat.jsp?port=25565&max=32&name=My%20Server&public=True&version=7&salt=wo6kVAHjxoJcInKx&users=0, avec un CRLF (retour chariot et saut de ligne, traduit par retour chariot et saut de ligne).
Assurez-vous que toutes les chaînes sont échappées, c'est-à-dire un retour chariot à la fin de la ligne.
Dans le corps de la réponse, vous pourrez récupérer l'URL. Sinon, vous recevrez une erreur HTML, souvent limitée à un simple ""dans la version Client.
(Remarque: aucun en-tête n'est renvoyé si vous utilisez le format de requête HTTP / 0.9 comme indiqué précédemment, ce qui rend cette méthode plus simple qu'auparavant.)
Authentification d'utilisateur[[[[Éditer | modifier le wikicode] La clé qui est donnée lorsqu'un utilisateur rejoint le serveur doit être comparée à la vérification MD5 du serveur "salt" avec le nom d'utilisateur pour vérifier que l'utilisateur est enregistré sur minecraft.net avec ce nom d'utilisateur. Grâce à cela, le nom du joueur devient un critère suffisamment fiable pour bannir ou noter par son nom.
if (player.key == md5 (server.salt + player.name)) // le joueur est inscrit sur Minecraft.net autre // le joueur n'est pas enregistré.
N.B.: Cela signifie que votre "grain de sel" doit être gardé secret et ne doit être partagé qu'avec heartbeat.jsp. Si le "grain de sel" de votre serveur est visible n'importe où par n'importe quel utilisateur, cela devient un jeu d'enfant pour les pirates de créer une clé qui semble valide, sans avoir besoin de s'authentifier sur minecraft.net.
Skins[[[[Éditer | modifier le wikicode] Les skins pour un joueur sont téléchargés par le client à l'adresse suivante: https://s3.amazonaws.com/MinecraftSkins/skinname.png et à http://minecraft.net/skin/skinname.png, ou "skinname" est le nom du joueur. Cela signifie que le nom du joueur peut être erroné pour donner à un joueur un skin spécial.
Les messages envoyés par le serveur au lecteur peuvent contenir des couleurs, ce qui permet de colorer le texte pour différentes utilisations.
Une esperluette (&) suivie d'une valeur hexadécimale dans le message indique au client la couleur à utiliser.
Les couleurs ne fonctionneront que si l'ID du joueur est inférieur à 127. S'il est de 127 ou plus, le jeu ajoutera automatiquement un & e (couleur jaune) avant le message, qui deviendra jaune. Cependant, les codes de couleur après le premier caractère fonctionnent toujours. Si vous utilisez un ID inférieur à 127, il n'ajoutera pas de code couleur, vous pouvez donc choisir n'importe quelle couleur.
Il est important de noter que si une esperluette à la fin d'un message n'est pas suivie d'une valeur hexadécimale, tous les clients qui reçoivent cette valeur se bloqueront. Il est donc nécessaire de garantir les données que le serveur envoie.
Mappage des chiffres hexadécimaux aux couleurs
Couleur
Codé
Nom commun
Couleur du texte
Couleur d'ombre
R
g
B
R
g
B
& 0 Noir 0 0 0 0 0 0
& 1 Bleu foncé 0 0 191 0 0 47
& 2 Vert foncé 0 191 0 0 47 0
& 3 Turquoise foncé 0 191 191 0 47 47
& 4 Rouge foncé 191 0 0 47 0 0
& 5 Violet 191 0 191 47 0 47
& 6 Or 191 191 0 47 47 0
& sept Gris 191 191 191 47 47 47
& 8 Gris foncé 64 64 64 16 16 16
& 9 Bleu 64 64 255 16 16 63
&à Vert clair 64 255 64 16 63 16
& b Turquoise 64 255 255 16 63 63
&contre rouge 255 64 64 63 16 16
& ré Rose 255 64 255 63 16 63
& e Jaune 255 255 64 63 63 16
& F blanc 255 255 255 63 63 63
Chaque package commence par une variable de type "octet" qui représente l'ID du package.
Types de données de protocole[[[[Éditer | modifier le wikicode]
Type Couper[octets] La description
Octet 1 Un octet représentant un entier non signé (0 à 255)
SByte 1 Un octet représentant un entier signé (-128 à 127)
Short 2 Un entier signé, ordre réseau (-32768 à 32767)
Chaîne 64 US-ASCII / ISO646-US: chaîne de caractères codée complétée par des espaces (0x20)
Tableau d'octets 1024 Données binaires complétées par "octets nuls" (0x00)
Topics and keywords
Themes: Serveur minecraft
License & attribution
License: CC BY-ND 4.0.
Attribution required: yes.
Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json
LLM Endpoints plugin version 1.1.2.