package openlauncher;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
import gui.OpenLauncherGui;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class PackLoader {
private final JsonParser parser = new JsonParser();
private final Gson gson;
private final File jsonFile;
private Main main;
public PackLoader(Main main) {
this.jsonFile = new File(main.getHome(), "packs.json");
GsonBuilder builder = new GsonBuilder();
builder.setPrettyPrinting();
this.gson = builder.create();
this.main = main;
}
public void loadPacks(OpenLauncherGui form) throws IOException {
Launch.form.packsComponent.packs.clear();
JsonObject object = this.parser.parse(FileUtils.readFileToString(this.jsonFile)).getAsJsonObject();
Object packs = new HashMap<String, ModPack>();
Type stringStringMap = new TypeToken<Map<String, ModPack>>() {
}.getType();
packs = gson.fromJson(object.get("packs"), stringStringMap);
Launch.packMap.putAll((Map) packs);
System.out.println(((Map) packs).keySet());
Iterator it = Launch.packMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
//LauncherForm.packListString.addElement(pair.getKey());
Launch.modPacks.add((ModPack) pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
Launch.form.packsComponent.packs.add((ModPack) pair.getValue());
}
// form.packList.repaint();
}
}