Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package disconsented.anssrpg.config;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.google.gson.reflect.TypeToken;
- import disconsented.anssrpg.perk.BlockPerk;
- import disconsented.anssrpg.perk.EntityPerk;
- import disconsented.anssrpg.perk.ItemPerk;
- import java.io.*;
- import java.lang.reflect.Type;
- import java.util.ArrayList;
- /**
- * @author Disconsented, Abelistah
- * Json Config's
- */
- public class JsonConfigHandler {
- private static File skillFile = new File("config/ANSSRPG", "skill.cfg");
- private static File perkFile = new File("config/ANSSRPG", "perk.cfg");
- private static File configFileLocation = new File("config/ANSSRPG");
- private static ObjectStore objectStore;
- public static void loadPerkAndSkill() {
- createPerkConfig();
- loadPerkConfig();
- }
- public static ObjectStore getObjectStore() { return objectStore; }
- public static void createPerkConfig() {
- objectStore = new ObjectStore();
- objectStore.addItemPerk(new ItemPerk());
- objectStore.addBlockPerk(new BlockPerk());
- objectStore.addEntityPerk(new EntityPerk());
- try {
- configFileLocation.mkdirs();
- Gson gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create();
- Writer osWriter = new OutputStreamWriter(new FileOutputStream(perkFile));
- gson.toJson(objectStore, osWriter);
- osWriter.close();
- } catch (Exception e) {
- System.err.println("Exception when creating perk config");
- System.err.println(e.getLocalizedMessage());
- }
- }
- private static void loadPerkConfig() {
- try {
- Gson gson = new Gson();
- Type objectStoreType = new TypeToken<ObjectStore>() {
- }.getType();
- Reader isReader = new InputStreamReader(new FileInputStream(perkFile));
- objectStore = gson.fromJson(isReader, objectStoreType);
- isReader.close();
- } catch (Exception e) {
- System.err.println("Exception when loading perkConfig");
- System.err.println(e.getLocalizedMessage());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement