Persistance des données avec WorldSavedData
-
C’est pas très clair je trouve. Quel est l’utilité réel ? La fonction “load” est appelée quand et comment ? Et qu’est-ce que représente la classe “WorldHealer” ?
-
@‘SCAREX’:
C’est pas très clair je trouve. Quel est l’utilité réel ? La fonction “load” est appelée quand et comment ? Et qu’est-ce que représente la classe “WorldHealer” ?
WorldHealer c’est une trace de mon mod ^^ Une erreur de ma part, j’ai remplacé tout les WorldHealer par “MaClasseASauvegarder” sauf a un endroit ^^ C’est chose faite a présent

La fonction load est appelé dès lors que tu as besoin d’une référence vers tes données.
L’utilité c’est de sauvegarder tes données via le système de sauvegarde Minecraft avec celle du monde ou de la dimension.
-
Et tu n’as pas expliqué sur qu’il faut enregistrer dans les NBT, un exemple serait bien.
Sinon, plutôt bon tutoriel, je connaissais pas l’existence de cette classe.
-
@‘SCAREX’:
Et tu n’as pas expliqué sur qu’il faut enregistrer dans les NBT, un exemple serait bien.
Sinon, plutôt bon tutoriel, je connaissais pas l’existence de cette classe.
Les NBT ne sont pas propre a cette classe, donc c’est un pré-requis, je vais faire les modifs sur le post

Je ne vais pas expliquer ce que sont les NBTTag ni comment on s’en sert, il y a déjà plein de tutoriels qui en parle. -
J’ai pas dit çà, je dis juste que les NBT sont pour pleins de choses : entités, blocs, items, etc. Il faudrait juste mettre un exemple.
-
@‘SCAREX’:
J’ai pas dit çà, je dis juste que les NBT sont pour pleins de choses : entités, blocs, items, etc. Il faudrait juste mettre un exemple.
A partir du moment où on sait remplir un NBTTag avec n’importe quelle classe que se soit, on sait le faire pour tout et n’importe quoi.
Sinon c’est qu’on a pas compris ce que sont les NBTTags et qu’on se contente de faire du copier/coller de tutoriels.
Les NBTTag servent à la sérialisation au format Minecraft. A partir de la, on peut s’en servir pour toutes les classes possibles et inimaginables. -
Oui mais tu ne dis pas où vont aller les NBT tags, est-ce que ce sera pour le monde ? Pour la dimension ? Pour tous les blocs d’une dimension ?
-
Ça sauvegarde dans la dimension. Et dans le cas où tu as besoin de sauvegarder dans le monde en général tu utilise la dimension 0. C’est précisé dans le tuto.
-
@‘robin4002’:
Et dans le cas où tu as besoin de sauvegarder dans le monde en général tu utilise la dimension 0.
Non, n’importe quel monde. Il faut juste utiliser l’attribut mapStorage qui est commun a toutes les instances de World au lieu de perWorldStorage.
-
côté serveur, il faut le faire côté serveur ou ça n’a pas d’importance?
-
Généralement les données sont sauvegardés sur le serveur. Le client n’a juste qu’une copie partielle des données.
-
Salut !
Bon, je sais que le sujet est vieux, mais ayant galéré pendant un moment sur quelque chose de vraiment bête, je pense qu’il est utile de préciser pour les futurs lecteurs du tutoriel que l’argument String dans le constructeur de la classe est INDISPENSABLE ! En effet, pour des raisons obscures, ceci ne fonctionne pas :
public MaClasseASauvegarder (){ super ("maCle"); }Il faut vraiment utiliser ceci :
public MaClasseASauvegarder (String key){ super (key); }Car sinon votre constructeur ne sera pas détecté (en tout cas c’est ce que je pense) et vous aurez une exception.
Bonne journée !
-
@‘TheRedColossus’:
Bon, je sais que le sujet est vieux
Aucun problème, les tutoriels peuvent être up à tout moment. (c’est d’ailleurs vrai pour n’importe quelle discussion du forum à partir du moment où le up apporte quelque chose à la discussion ;))