package launcher; import java.io.*; import org.json.simple.*; import org.json.simple.parser.*; public class Config { public int width, height, rounds; public boolean fullscreen, hitboxes; public String stage; public String p1, p2; public Config() throws FileNotFoundException { parse(); } public void parse() throws FileNotFoundException { // initialize the parser JSONParser jsonP = new JSONParser(); try { // read the json document JSONObject jsonO = (JSONObject) jsonP.parse(new FileReader("game.set")); // to print all values // System.out.println(jsonO.values()); // isolate the "test" part and print it // String test = (String) jsonO.get("test"); // System.out.println("ceci est un test :" + test); JSONArray game = (JSONArray) jsonO.get("game"); JSONObject settings = (JSONObject) game.get(0); // print a case of this element stage = (String) settings.get("stage"); // rounds rounds = Integer.parseInt((String) settings.get("rounds")); // character selection p1 = (String) settings.get("character1"); p2 = (String) settings.get("character2"); height = Integer.parseInt((String) settings.get("height")); // String to int width = Integer.parseInt((String) settings.get("width")); // fullscreen String fs = (String) settings.get("fullscreen"); if (fs.equals("true")) { fullscreen = true; } else fullscreen = false; String hb = (String) settings.get("hitboxes"); if (hb == null) hb = "false"; if (hb.equals("true")) { hitboxes = true; } else hitboxes = false; // rounds String temprounds = (String) settings.get("rounds"); switch (temprounds) { case "1": rounds = 1; case "3": rounds = 3; case "5": rounds = 5; default: rounds = 1; } } catch (FileNotFoundException e) { File f = new File("game.set"); try { f.createNewFile(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); System.exit(1); } parse(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { System.out.println("Empty config file"); } } @SuppressWarnings("unchecked") public void write(int width, int height, int rounds, boolean fullscreen, boolean hitboxes, String character1, String character2, String stage) throws Exception { JSONObject metafile = new JSONObject(); JSONArray array = new JSONArray(); JSONObject set = new JSONObject(); set.put("width", Integer.toString(width)); set.put("height", Integer.toString(height)); set.put("rounds", Integer.toString(rounds)); set.put("fullscreen", Boolean.toString(fullscreen)); set.put("hitboxes", Boolean.toString(hitboxes)); set.put("character1", character1); set.put("character2", character2); set.put("stage", stage); array.add(set); metafile.put("game", array); try (FileWriter file = new FileWriter("game.set", false)) { file.write(metafile.toJSONString()); file.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }