public static string Run(ConsoleSystem.Option options, string strCommand, params object[] args) { ConsoleSystem.LastError = null; string str = ConsoleSystem.BuildCommand(strCommand, args); ConsoleSystem.Arg arg = new ConsoleSystem.Arg(options, str); bool flag = arg.HasPermission(); if (!arg.Invalid & flag) { ConsoleSystem.Arg currentArgs = ConsoleSystem.CurrentArgs; ConsoleSystem.CurrentArgs = arg; bool flag1 = ConsoleSystem.Internal(arg); ConsoleSystem.CurrentArgs = currentArgs; if (options.PrintOutput & flag1 && arg.Reply != null && arg.Reply.Length > 0) { DebugEx.Log(arg.Reply, StackTraceLogType.None); } return(arg.Reply); } ConsoleSystem.LastError = "Command not found"; if (!flag) { ConsoleSystem.LastError = "Permission denied"; } if (options.IsServer || options.ForwardtoServerOnMissing && ConsoleSystem.SendToServer(str)) { if (options.IsServer && options.PrintOutput) { ConsoleSystem.LastError = string.Concat("Command '", strCommand, "' not found"); DebugEx.Log(ConsoleSystem.LastError, StackTraceLogType.None); } return(null); } ConsoleSystem.LastError = string.Concat("Command '", strCommand, "' not found"); if (options.PrintOutput) { DebugEx.Log(ConsoleSystem.LastError, StackTraceLogType.None); } return(null); }