All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.minecraftforge.gradle.json.LiteLoaderJson Maven / Gradle / Ivy

package net.minecraftforge.gradle.json;

import java.lang.reflect.Type;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;

public class LiteLoaderJson
{
    public MetaObject meta;
    public Map versions;
    
    public static final class MetaObject
    {
        public String description, authors, url;
    }
    
    public static final class VersionObject
    {
        public Artifact latest;
        public List artifacts;
    }
    
    public static final class Artifact
    {
        public String group, md5, tweakClass, file, version, mcpJar, srcJar;
        public long timestamp;
        
        public boolean hasMcp()
        {
            return mcpJar != null;
        }
        
        public String getMcpDepString()
        {
            return group + ":" + version + "-mcpnames"; 
        }
    }
    
    public static final class VersionAdapter implements JsonDeserializer
    {
        @Override
        public VersionObject deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException
        {
            VersionObject obj = new VersionObject();
            obj.artifacts = new LinkedList();
            
            JsonObject groupLevel = json.getAsJsonObject().getAsJsonObject("artefacts");
            
            // itterate over the groups
            for (Entry groupE : groupLevel.entrySet())
            {
                String group = groupE.getKey();
                
                // itterate over the artefacts in the groups
                for (Entry artifactE : groupE.getValue().getAsJsonObject().entrySet())
                {
                    Artifact artifact = context.deserialize(artifactE.getValue(), Artifact.class);
                    artifact.group = group;
                    
                    if ("latest".equals(artifactE.getKey()))
                    {
                        obj.latest = artifact;
                    }
                    else
                    {
                        obj.artifacts.add(artifact);
                    }
                    
                }
            }
                    
            
            return obj;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy