C’est un identifiant unique universel.
En gros, c’est 2 champ de type long généré aléatoirement qui nous donne un nombre unique pour chaque joueur.
Je ne m’attarde pas sur les aspects techniques et pratiques, mais si vous êtes curieux, c’est ici que ça se passe :
https://fr.wikipedia.org/wiki/Universal_Unique_Identifier
Depuis la version 1.7 de Minecraft, ce nouveau système d’authentification à été mis en place.
Avant la 1.7, un joueur était identifié par son nom.
En 1.8 nous pourront changer de nom, ainsi il nous faut un autre identifiant, c’est l’UUID qui va remplir ce rôle.
Notez bien que si vous continuez a identifier vos joueurs par leur nom, vous serez confrontez a plusieurs problèmes :
- Plusieurs joueurs pourront avoir le même nom
- N’importe qui pourra usurper l’identité d’un joueur, simplement en changeant son nom.
-
Le cas d’un joueur en ligne :
Vous possèdez une référence vers le joueur connecté, donc il vous suffit de faire
entityPlayer.getGameProfile()
Vous avez ensuite accès a des méthodes vous fournissant l’UUID du joueur, son nom etc…
-
Le cas d’un joueur hors ligne :
A TESTER
Sans parler des détails techniques, la manipulation a faire est la suivante :
UUID.nameUUIDFromBytes(("OfflinePlayer:" + entityPlayer.getName()).getBytes(Charsets.UTF_8)
Lorsque vous changer le paramètre online-mode de votre serveur, les UUID ne sont plus les même.
Ainsi, le serveur vous considéra en tant qu’un nouveau joueur et tout les paramètres sauvegardés sur l’ancien joueur resteront sur l’ancien joueur.
Vous apparaîtrez donc au spawn, sans aucun item.
Si vous avez d’autre info sur ce système ou des questions n’hésitez pas a poster a la suite de ce post.
Pour ma part, plusieurs questions restent en suspend :
- Peut-il y avoir plusieurs joueurs avec le même nom connecté simultanément au même serveur ?
- Si un joueur offline change son nom, récupère-t’il sont stuff a la prochaine connexion ?
Les explications viennent en partie d’un post en anglais sur le forum officiel de Forge : http://www.minecraftforge.net/forum/index.php/topic,26621.0.html