package imdutch21.oilcraft.util; import imdutch21.oilcraft.lib.ModInfo; import imdutch21.oilcraft.recipe.UserRecipes; import com.google.gson.stream.JsonReader; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.client.event.ConfigChangedEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; public class ConfigHandler { public static final ConfigHandler INSTANCE = new ConfigHandler(); public static final String[] CATEGORIES = {"Blocks"}; public static int OIL_GENERATOR_RF_TICK; public static int OIL_GENERATOR_TICKS; public Configuration config; public static String path = ""; public void loadConfig(FMLPreInitializationEvent event) { path = event.getSuggestedConfigurationFile().getPath(); config = new Configuration(new File(path.replace("oilcraft.cfg", "oilcraft/mainConfig.cfg"))); config.load(); syncConfigs(); } private void syncConfigs() { OIL_GENERATOR_RF_TICK = config.get(CATEGORIES[0], "The amount of RF/tick the oil generator produces", 80).getInt(80); OIL_GENERATOR_TICKS = config.get(CATEGORIES[0], "The amount of ticks the oil generator runs on 100 mB (20 ticks = 1 second)", 200).getInt(200); save(); } public void save() { if (config.hasChanged()) { config.save(); } } @SubscribeEvent public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) { if (event.getModID().equals(ModInfo.ID)) { syncConfigs(); } } public static void userRecipes() { File file = new File(path.replace("oilcraft.cfg", "oilcraft/recipes.json")); try { if(file.createNewFile()) { PrintWriter writer = new PrintWriter(file); writer.println("{"); writer.println("}"); writer.close(); System.out.println("Created new file"); } JsonReader jsonReader = new JsonReader(new FileReader(file)); jsonReader.beginObject(); UserRecipes.readJson(jsonReader); jsonReader.endObject(); jsonReader.close(); } catch (IOException e) { e.printStackTrace(); } } }