• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Une clef pour une porte .

1.8.x
1.8
7
46
8.7k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • Gabs
    Gabs dernière édition par 7 août 2016, 19:25

    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>

    1 réponse Dernière réponse Répondre Citer 0
    • Gabs
      Gabs dernière édition par 9 août 2016, 11:53

      Personne ?

      1 réponse Dernière réponse Répondre Citer 0
      • AymericRed
        AymericRed dernière édition par 9 août 2016, 13:35

        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>

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 réponse Dernière réponse Répondre Citer 1
        • Gabs
          Gabs dernière édition par 9 août 2016, 14:15

          @‘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 ?

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 9 août 2016, 15:10

            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.

            1 réponse Dernière réponse Répondre Citer 0
            • Gabs
              Gabs dernière édition par 9 août 2016, 15:37

              @‘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 ! 🙂

              1 réponse Dernière réponse Répondre Citer 0
              • 1
              • 2
              • 3
              • 3 / 3
              43 sur 46
              • Premier message
                43/46
                Dernier message
              Design by Woryk
              Contact / Mentions Légales

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB