using System.Text; using Newtonsoft.Json; using Exception = System.Exception; namespace RecipeRevamper { class Program { static void Main(string[] args) { Console.WriteLine($"Got {args.Length} recipe files to convert ..."); foreach (string recipePath in args) { MinecraftRecipe recipe; try { recipe = GetRecipeFromFile(recipePath); } catch (Exception) { Console.WriteLine("Exception occurred during parsing skipping this file ..."); continue; } WriteRecipeToOutput(recipe, "test"); } Console.WriteLine("... Done"); Console.WriteLine("Press ENTER to exit the program ..."); } static MinecraftRecipe ConvertRecipe(MinecraftRecipe oldRecipe) { var newRecipe = oldRecipe.Copy(); return newRecipe; } static void WriteRecipeToOutput(MinecraftRecipe recipe, string name) { if (!Directory.Exists("./output")) { Directory.CreateDirectory("./output"); } byte[] bytes = Encoding.UTF8.GetBytes(recipe.Serialize()); var fileStream = File.Create($"./output/{name}.json"); fileStream.Write(bytes, 0, bytes.Length); fileStream.Close(); } static MinecraftRecipe GetRecipeFromFile(string path) { try { return JsonConvert.DeserializeObject(File.ReadAllText(path)) ?? throw new InvalidOperationException(); } catch (FileNotFoundException) { Console.WriteLine($"File: {path} could not be found."); throw; } catch (InvalidOperationException) { Console.WriteLine($"File: {path} could not be parsed."); throw; } } } }