MFF

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

    Sauvegarder NBT

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.12.2
    3 Messages 2 Publieurs 174 Vues 2 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.
    • A Hors-ligne
      AyzRoll
      dernière édition par

      Salut , je galere depuis pas mal de temps a stocker une HashMap<UUID,ArrayList<String>>
      en gros une arrayList pour chaque joueur qui contient des string seulement j’arrive pas a stocer ca quand le serveur ferme voici mon code :

      public NBTTagCompound writeToNBT(NBTTagCompound nbtTagCompound) {
          NBTTagList contactNom = new NBTTagList();
          for(Map.Entry<UUID,ArrayList<String>> mapentry : ServerSide.nomContact.entrySet()){
              NBTTagCompound pointstag = new NBTTagCompound();
              pointstag.setUniqueId("contactnomid", mapentry.getKey());
      
              NBTTagList tagList = new NBTTagList();
              ArrayList <String>list = mapentry.getValue();
      
              for(String s:list){
                  tagList.appendTag(new NBTTagString(s));
              }
      
              pointstag.setTag("listnom",tagList);
              contactNom.appendTag(pointstag);
          }
      
          nbtTagCompound.setTag("contactnom",contactNom);
          return nbtTagCompound;
      }
      

      et dans le readFromNBT :

      public void readFromNBT(NBTTagCompound nbtTagCompound) {
      
          NBTTagList contactNom= (NBTTagList)nbtTagCompound.getTag("contactnom");
      for(int i = 0; i < contactNom.tagCount(); i++) {
              NBTTagCompound rankTag = contactNom.getCompoundTagAt(i);
              ArrayList<String> listNom = new ArrayList<>();
              NBTTagList tagList = rankTag.getTagList("listnom", Constants.NBT.TAG_STRING);
              for(int t = 0; t < tagList.tagCount();t++){
                  String s = tagList.getStringTagAt(i);
                  listNom.add(s);
              }
              ServerSide.numeroContact.put(rankTag.getUniqueId("contactnomid"),listNom);
          }
      

      Oui , le WorldSavedData est bien appélé , car je l’use pour stocker d’autre chose qui marche bien

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

        il est censé écrire ça dans quel fichier?

        parce que les nbt des joueur existe dans UUI.dat dans le fichier joueur etc
        la tes donnée NBT tu cherche a les écrire dans le level.dat?

        parce que si ca concerne les joueur pourquoi pas le stocker dans le joueur en queston peut etre en utilisant le system de capability?

        comme ca le serveur irait chercher les valeur de tag dans le fichier joueur

        “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

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

          C’est resolu depuis un moment merci a toi quand meme

          1 réponse Dernière réponse Répondre Citer 0
          • 1 / 1
          • Premier message
            Dernier message
          Design by Woryk
          ContactMentions Légales

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB