Résolu Une clef pour une porte .
-
Problème réglé j’ai re créer ma classe plus de soucis ^^ bizarre …
Pour le WorldStorage:
J’ai fais nimp je comprends pas comment faire:package com.CSC.net.save; import javafx.geometry.Pos; import com.CSC.net.Events.Events; import com.CSC.net.Events.Events.Position; import com.CSC.net.proxy.ServerProxy; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; import net.minecraft.world.storage.MapStorage; import net.minecraftforge.common.DimensionManager; public class KeySave extends WorldSavedData{ public static KeySave instance; /** /* Ce constructeur est obligatoire */ public static KeySave load(World w) { if(DimensionManager.getWorlds().length < 1) return null; MapStorage storage = DimensionManager.getWorlds()[0].getMapStorage(); //On récupère la mapStorage de la dimension final String KEY = Events.Key; // Si vous avez choisis de faire une fonction static String. Quoiqu'il en soit, la variable KEY que nous utiliserons ici représente votre clé. Si vous utilisez un attribut static, utilisez le directement. KeySave result = (KeySave)storage.loadData(KeySave.class, KEY);//On charge nos données if (result == null) { //Si nos données n'existe pas, … result = new KeySave(KEY);// Alors on les crée ... storage.setData(KEY, result);// Et on les ajoutes à la mapStorage. } return result; //On retourne notre objet qui représente les données a sauvegarder } public KeySave(String key) { super(key); instance = this; } @Override public void readFromNBT(NBTTagCompound compound) { NBTTagList keyList= (NBTTagList)compound.getTag("keyList"); for(int i = 0; i < keyList.tagCount(); i++) { NBTTagCompound keyTag = keyList.getCompoundTagAt(i); Events.doorsPositions.add(new Position(x, y, z, dimension);// Quoi mettre a la place de x y z dimension ,valueof cuase érreur } } @Override public void writeToNBT(NBTTagCompound compound) { NBTTagList keyList = new NBTTagList(); Iterator <position>iterator = Events.doorsPositions.iterator(); while(iterator.hasNext()) { NBTTagCompound keyTag = new NBTTagCompound(); keyList.setString("x", ?? ; // Quoi mettre keyList.setString("y", ?? ;// keyList.setString("z", ?? ;// keyList.setString("dimension", ?? ;// keyList.appendTag(keyTag); } compound.setTag("keyList", keyList); } }
S’il vous plait ?</position>
-
Personne ?
-
Ce n’est pas si compliqué que ça pourtant, tu as déjà fait le plus dur…
@Override public void readFromNBT(NBTTagCompound compound) { NBTTagList keyList= (NBTTagList)compound.getTag("keyList"); for(int i = 0; i < keyList.tagCount(); i++) { NBTTagCompound keyTag = keyList.getCompoundTagAt(i); Events.doorsPositions.add(new Position(keyTag.getInteger("x"), y, z, dimension);//A toi de faire ce que j'ai fait avez x pour les autres int } } @Override public void writeToNBT(NBTTagCompound compound) { NBTTagList keyList = new NBTTagList(); Iterator <position>iterator = Events.doorsPositions.iterator(); Position pos; NBTTagCompound keyTag; while(iterator.hasNext()) { pos = iterator.next(); keyTag = new NBTTagCompound(); keyList.setInteger("x", pos.getX()); keyList.setInteger("y", pos.getY()); keyList.setInteger("z", pos.getZ()); keyList.setInteger("dimension", pos.dimensionId); keyList.appendTag(keyTag); } compound.setTag("keyList", keyList); } ```</position>
-
@‘AymericRed’:
Ce n’est pas si compliqué que ça pourtant, tu as déjà fait le plus dur…
@Override public void readFromNBT(NBTTagCompound compound) { NBTTagList keyList= (NBTTagList)compound.getTag("keyList"); for(int i = 0; i < keyList.tagCount(); i++) { NBTTagCompound keyTag = keyList.getCompoundTagAt(i); Events.doorsPositions.add(new Position(keyTag.getInteger("x"), y, z, dimension);//A toi de faire ce que j'ai fait avez x pour les autres int } } @Override public void writeToNBT(NBTTagCompound compound) { NBTTagList keyList = new NBTTagList(); Iterator <position>iterator = Events.doorsPositions.iterator(); Position pos; NBTTagCompound keyTag; while(iterator.hasNext()) { pos = iterator.next(); keyTag = new NBTTagCompound(); keyList.setInteger("x", pos.getX()); keyList.setInteger("y", pos.getY()); keyList.setInteger("z", pos.getZ()); keyList.setInteger("dimension", pos.dimensionId); keyList.appendTag(keyTag); } compound.setTag("keyList", keyList); } ```</position>
Ah ok je pensais pas que c’était possible de mettre Position pos; comme ça merci
J’ai juste une érreur au keyList.setinteger il me dis que il faut un NBTTagCompound donc j’ai pris le keyTag c’est pas grave ?
-
Non, ce n’est pas grave, car c’est justement comme ça qu’il faut faire.
AymericRed s’est fail, ça m’arrive aussi assez souvent quand je donnes du code sans l’avoir tapé sur eclipse. -
@‘robin4002’:
Non, ce n’est pas grave, car c’est justement comme ça qu’il faut faire.
AymericRed s’est fail, ça m’arrive aussi assez souvent quand je donnes du code sans l’avoir tapé sur eclipse.D’acc merci !