
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