private async void ExecuteCSharpScript(string code) { //Kimimaru: Store the default console output stream TextWriter defaultOut = Console.Out; bool prevIgnoreConsoleLogVal = BotProgram.MsgHandler.IgnoreConsoleLog; try { //Kimimaru: Output any Console output to the chat //To do this, we're overriding the Console's output stream using (BotWriter writer = new BotWriter()) { Console.SetOut(writer); BotProgram.MsgHandler.SetIgnoreConsoleLog(true); var script = await CSharpScript.RunAsync(code, ScriptCompileOptions); Console.SetOut(defaultOut); BotProgram.MsgHandler.SetIgnoreConsoleLog(prevIgnoreConsoleLogVal); } } catch (CompilationErrorException exception) { BotProgram.MsgHandler.QueueMessage($"Compiler error: {exception.Message}"); } //Regardless of what happens, return the output stream to the default finally { Console.SetOut(defaultOut); BotProgram.MsgHandler.SetIgnoreConsoleLog(prevIgnoreConsoleLogVal); } }
protected async void ExecuteCSharpScript(string code) { //Store the default console output stream TextWriter defaultOut = Console.Out; bool prevIgnoreConsoleLogVal = DataContainer.MessageHandler.LogToConsole; try { //Output any Console output to the chat //To do this, we're overriding the Console's output stream using (BotWriter writer = new BotWriter(DataContainer.MessageHandler)) { Console.SetOut(writer); DataContainer.MessageHandler.SetLogToConsole(false); var script = await CSharpScript.RunAsync(code, ScriptCompileOptions); Console.SetOut(defaultOut); DataContainer.MessageHandler.SetLogToConsole(prevIgnoreConsoleLogVal); } } catch (CompilationErrorException exception) { QueueMessage($"Compiler error: {exception.Message}"); } //Regardless of what happens, return the output stream to the default finally { Console.SetOut(defaultOut); DataContainer.MessageHandler.SetLogToConsole(prevIgnoreConsoleLogVal); } }