Modification de minecraft playerdata lors du transfert d'un jeu enregistré (ouvert sur LAN)?

Player A créé un jeu de joueur unique dans Minecraft, hébergé sur son ordinateur portable et ouvert au LAN chez moi avec environ 4 personnes au total, y compris moi-même, Player B Player A ordinateur portable du Player A était bientôt en difficulté avec les responsabilités d'hébergement, et nous voulions transférer le jeu sauvegardé sur le bureau du Player B

Nous avons transféré le fichier sur mon ordinateur et l'ai chargé. Le monde semblait être le même, mais lorsque je suis connecté en tant que Player B , il a chargé les données du Player A pour le Player A ; J'étais à son endroit, avec ses objets, et eu son expérience.

En creusant, je crois que la raison en est parce que la manière dont le playerdata du jeu a sauvé son joueur avait quelque chose à voir avec lui étant l'hôte. Maintenant, puisque je suis l'hôte, il doit être l'attribuer au joueur avec les attributs d'hôte précédents.

Je ne l'ai pas encore connecté (joueur A) pendant que je (le joueur B) hôte sur le bureau, mais je suppose qu'il aurait mes qualifications?

En outre, un autre joueur, qui était sur le serveur la nuit dernière pendant que le Player A accueillait, a ouvert ses portes pendant que j'avais commencé à héberger, et son personnage était le même; Elle avait les mêmes objets, était au même endroit que la nuit dernière, etc.

Pourquoi suis-je connecté comme hôte précédent, Player A , mais il semble que tout le monde possède ses informations d'identification correctes? Y a-t-il une façon de changer cela pour que je sois connecté en tant que Player B lors de l'hébergement?

Chaque joueur a son propre fichier dans le dossier playerdata un monde, nommé par ses UUID:

Entrez la description de l'image ici

Ces fichiers contiennent leur inventaire, leur emplacement, leur santé, etc.

Remarque: Si c'est un monde plus ancien, il peut y avoir aussi un dossier de players avec des fichiers similaires. Ignorez cela, il est obsolète et ne fait rien.

En plus de cet emplacement de stockage, sur le joueur unique, les données du joueur sont stockées dans level.dat , toujours sous le nom "Player":

Entrez la description de l'image ici

Sur le seul joueur, cette version par défaut du "Joueur" a priorité. S'il existe, il sera toujours utilisé en premier, et il ne se soucie pas de l'utilisateur, tant qu'il est un joueur. Ces deux emplacements sont sauvegardés avec vos données actuelles dans le jeu.

Cela signifie que vous pouvez jouer un monde sur un seul joueur avec un compte, puis le donner à un ami (ou le télécharger sur un site) pour que d'autres personnes continuent là où vous avez quitté (toujours sur un joueur), il utilisera le fichier Player plutôt Que celui spécifique à votre UUID.

Au fur et à mesure que les mondes LAN sont créés par le premier lancement d'un joueur unique puis l'ouverture du monde au LAN, ce fichier Player sera la donnée de l'hôte, le joueur A. Comme vous ouvrez maintenant le monde sur un joueur (avant de l'ouvrir au LAN), il utilise Les données du fichier Player, ou les données du joueur A plutôt que votre propre fichier UUID.

Cela signifie également que les données de votre personnage stockées dans le fichier UUID ont probablement été écrasées avec les données du Joueur A. Tout le monde a encore son propre fichier UUID intact, car ils ne sont connectés au monde que s'il est sur le multijoueur.

Pour résoudre ce problème, vous devriez d'abord avoir besoin d'une sauvegarde avant le transfert. Dans level.dat, supprimez le fichier "Player", puis connectez-vous au monde sur un seul joueur. Cela devrait l'obliger à charger votre fichier UUID, puis à enregistrer le fichier Player en fonction de cela plutôt que l'inverse. Tout devrait bien fonctionner à partir de là.