1.12.2 Sauvegarder NBT



  • 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



  • 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



  • C'est resolu depuis un moment merci a toi quand meme


Log in to reply