MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Une clef pour une porte .

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    46 Messages 7 Publieurs 9.6k Vues 1 Watching
    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.
    • GabsG Hors-ligne
      Gabs
      dernière édition par

      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
      • GabsG Hors-ligne
        Gabs
        dernière édition par

        Personne ?

        1 réponse Dernière réponse Répondre Citer 0
        • AymericRedA Hors-ligne
          AymericRed
          dernière édition par

          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
          • GabsG Hors-ligne
            Gabs
            dernière édition par

            @‘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
            • robin4002R Hors-ligne
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs
              dernière édition par

              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
              • GabsG Hors-ligne
                Gabs
                dernière édition par

                @‘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
                • Premier message
                  Dernier message
                Design by Woryk
                ContactMentions Légales

                MINECRAFT FORGE FRANCE © 2024

                Powered by NodeBB