HashMap в NBT

Версия Minecraft
1.10.2
95
1
2
Так получилось, что для синхронизации мне нужно поместить HashMap<String, UUID> в NBT, но вот только совсем не могу вдуплить каким образом это сделать, что бы потом в итоге вытащить или собрать по частям все тот же HashMap<String, UUID>
 
Решение
Java:
    static final HashMap<String, UUID> map = new HashMap<String, UUID>();
    
    public static void to() {
        NBTTagCompound nbt = new NBTTagCompound();
        for (Map.Entry<String, UUID> entry : map.entrySet()) {
            nbt.setString(entry.getKey(), entry.getValue().toString());
        }
        //send(nbt)
    }

    public static void from() {
        map.clear();
        NBTTagCompound nbt = /*onMessage get NBTTagCompound*/
        for (Object key : nbt.func_150296_c()) {
            if (key instanceof String)
                map.put((String)key, UUID.fromString(nbt.getString((String)key)));
        }
    }
7,099
324
1,510
Scala:
implicit def map2Nbt(map: Map[String,UUID]): NBTTagCompound =
    map.foldLeft(new NBTTagCompound){
      case (acc,(key,value))=>
        acc.setTag(key,value.toString)
        acc
    }
 

timaxa007

Модератор
5,831
409
672
Java:
    static final HashMap<String, UUID> map = new HashMap<String, UUID>();
    
    public static void to() {
        NBTTagCompound nbt = new NBTTagCompound();
        for (Map.Entry<String, UUID> entry : map.entrySet()) {
            nbt.setString(entry.getKey(), entry.getValue().toString());
        }
        //send(nbt)
    }

    public static void from() {
        map.clear();
        NBTTagCompound nbt = /*onMessage get NBTTagCompound*/
        for (Object key : nbt.func_150296_c()) {
            if (key instanceof String)
                map.put((String)key, UUID.fromString(nbt.getString((String)key)));
        }
    }
 
Сверху