private void RenderRCONCommandOutput(ServerRCON.ConsoleCommand command) { // // Format output // var p = new Paragraph(); if (!command.suppressCommand) { foreach (var element in FormatCommandInput(command)) { p.Inlines.Add(element); } } if (!command.suppressOutput) { foreach (var element in FormatCommandOutput(command)) { p.Inlines.Add(element); } } if (!(command.suppressCommand && command.suppressOutput)) { if (p.Inlines.Count > 0) { AddBlockContent(p); } } }
private IEnumerable <Inline> FormatCommandOutput(ServerRCON.ConsoleCommand command) { bool firstLine = true; if (command.command.Equals("listplayers", StringComparison.OrdinalIgnoreCase)) { foreach (var output in command.lines) { var trimmed = output.TrimEnd(); if (!firstLine) { yield return(new LineBreak()); } firstLine = false; if (trimmed == ServerRCON.NoResponseOutput) { yield return(new RCONOutput_NoResponse()); } else if (trimmed.EndsWith("joined the game.")) { yield return(new RCONOutput_PlayerJoined(trimmed)); } else if (trimmed.EndsWith("left the game.")) { yield return(new RCONOutput_PlayerLeft(trimmed)); } else { yield return(new RCONOutput_CommandOutput(trimmed)); } } } else { foreach (var output in command.lines) { var trimmed = output.TrimEnd(); if (!firstLine) { yield return(new LineBreak()); } firstLine = false; if (trimmed == ServerRCON.NoResponseOutput) { yield return(new RCONOutput_NoResponse()); } else { yield return(new RCONOutput_CommandOutput(trimmed)); } } } }
private IEnumerable <Inline> FormatCommandInput(ServerRCON.ConsoleCommand command) { if (command.command.Equals("broadcast", StringComparison.OrdinalIgnoreCase)) { yield return(new RCONOutput_Broadcast(command.args)); } else { yield return(new RCONOutput_Command($"> {command.rawCommand}")); } if (!command.suppressOutput && command.lines.Count() > 0) { yield return(new LineBreak()); } }
private IEnumerable <Inline> FormatCommandOutput(ServerRCON.ConsoleCommand command) { bool firstLine = true; foreach (var output in command.lines) { var trimmed = output.TrimEnd(); if (!firstLine) { yield return(new LineBreak()); } firstLine = false; if (output == ServerRCON.NoResponseOutput) { yield return(new RCONOutput_NoResponse()); } else { yield return(new RCONOutput_CommandOutput(trimmed)); } } }