public void Execute(string command) { ui.Echo(command); var separators = new char[] { ' ' }; command = command.TrimStart(separators); var cmdArray = command.Split(separators); DiagnosticCommand cmd; if (commands.TryGetValue(cmdArray[0], out cmd)) { try { cmd.Action(this, cmdArray.Skip(1)); } catch (Exception ex) { ui.Echo("Unhandled exception occured!"); foreach (var line in ex.Message.Split('\n')) { ui.Echo(line); } } } else { ui.Echo("Unknown command!"); } }
private void InitBasicCommands() { host.RegisterCommand("clist", "Show commands list", (chost, args) => { var maxLen = host.Commands.Max(m => m.Name.Length); var fmt = string.Format("{{0,-{0}}} {{1}}", maxLen); foreach (var cmd in host.Commands) { ui.Echo(string.Format(fmt, cmd.Name, cmd.Description)); } return(0); }); host.RegisterCommand("cls", "Clear screen", (chost, args) => { ui.Clear(); return(0); }); host.RegisterCommand("echo", "Display messages", (chost, args) => { ui.Echo(args.Aggregate((acc, next) => acc + " " + next)); return(0); }); host.RegisterCommand("efail", "Environmental hard failing", (chost, args) => { Environment.FailFast("Test fail from in-game command line!"); return(0); }); }