package openblocks.client;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IResource;
import net.minecraft.util.ResourceLocation;
import openmods.Log;
public class ChangelogBuilder {
private static final ResourceLocation CHANGELOG = new ResourceLocation("openblocks", "changelog.json");
private static final Type LIST_TYPE = new TypeToken<ArrayList<Changelog>>() {}.getType();
public static class ChangelogSection {
public String title;
public List<String> lines = Lists.newArrayList();
}
public static class Changelog {
public String version;
public List<ChangelogSection> sections = Lists.newArrayList();
}
public static List<Changelog> readChangeLogs() {
try {
IResource resource = Minecraft.getMinecraft().getResourceManager().getResource(CHANGELOG);
InputStream resourceStream = resource.getInputStream();
try {
Reader reader = new InputStreamReader(resourceStream);
Gson gson = new Gson();
return gson.fromJson(reader, LIST_TYPE);
} finally {
resourceStream.close();
}
} catch (Exception e) {
Log.severe(e, "Failed to read changelog");
}
return ImmutableList.of();
}
}