private static void GenerateCommandsOutput(ProcessedCommands commands, string outputFile) { Directory.CreateDirectory(Path.GetDirectoryName(outputFile)); using (StreamWriter writer = new StreamWriter(outputFile)) { writer.WriteLine(commands.ToJson()); } }
private static void ParseCommands(string commandFile, string outputFolder) { using (StreamReader reader = new StreamReader(commandFile)) { RawCommands rawCommands = RawCommands.FromJson(reader.ReadToEnd()); ProcessedCommands processedModeratorCommands = new ProcessedCommands(); ProcessedCommands processedViewerCommands = new ProcessedCommands(); ProcessedCommands processedPawnCommands = new ProcessedCommands(); foreach (RawCommand rawCommand in rawCommands.Commands) { if (string.IsNullOrWhiteSpace(rawCommand.Name)) { continue; } if (rawCommand.Usage.StartsWith("!rwdata")) { continue; } ProcessedCommand processedCommand = ProcessedCommand.FromRawCommand(rawCommand); if (rawCommand.UserLevel == UserLevel.Moderator) { processedModeratorCommands.Commands.Add(processedCommand); } else { if (IsPawnCommand(rawCommand.Usage)) { processedPawnCommands.Commands.Add(processedCommand); } else { processedViewerCommands.Commands.Add(processedCommand); } } } string outputFileModerator = Path.Combine(outputFolder, "SiteCommandsModerator.json"); string outputFileViewer = Path.Combine(outputFolder, "SiteCommandsViewer.json"); string outputFilePawn = Path.Combine(outputFolder, "SiteCommandsPawn.json"); GenerateCommandsOutput(processedModeratorCommands, outputFileModerator); GenerateCommandsOutput(processedViewerCommands, outputFileViewer); GenerateCommandsOutput(processedPawnCommands, outputFilePawn); } }