From bdf37e427c2933561e0c25669b4c836da49e224a Mon Sep 17 00:00:00 2001 From: CarbonNeuron Date: Fri, 1 May 2020 09:26:51 -0500 Subject: [PATCH] Add some features of command logging --- MinecraftClient/Commands/Sneak.cs | 1 + MinecraftClient/McTcpClient.cs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/MinecraftClient/Commands/Sneak.cs b/MinecraftClient/Commands/Sneak.cs index ada8b00b..8c8240b7 100644 --- a/MinecraftClient/Commands/Sneak.cs +++ b/MinecraftClient/Commands/Sneak.cs @@ -13,6 +13,7 @@ namespace MinecraftClient.Commands public override string Run(McTcpClient handler, string command, Dictionary localVars) { + Console.WriteLine(command); if (sneaking) { var result = handler.sendEntityAction(Protocol.ActionType.StopSneaking); diff --git a/MinecraftClient/McTcpClient.cs b/MinecraftClient/McTcpClient.cs index 5651761a..8234133b 100644 --- a/MinecraftClient/McTcpClient.cs +++ b/MinecraftClient/McTcpClient.cs @@ -325,6 +325,7 @@ namespace MinecraftClient } while (true); } + /// /// Perform an internal MCC command (not a server command, use SendText() instead for that!) @@ -335,6 +336,7 @@ namespace MinecraftClient /// TRUE if the command was indeed an internal MCC command public bool PerformInternalCommand(string command, ref string response_msg, Dictionary localVars = null) { + /* Load commands from the 'Commands' namespace */ if (cmds.Count == 0) @@ -383,12 +385,28 @@ namespace MinecraftClient else if (cmds.ContainsKey(command_name)) { response_msg = cmds[command_name].Run(this, command, localVars); + foreach (ChatBot bot in bots.ToArray()) + { + try + { + bot.OnInternalCommand(command_name, response_msg); + } + catch (Exception e) + { + if (!(e is ThreadAbortException)) + { + ConsoleIO.WriteLogLine("OnInternalCommand: Got error from " + bot.ToString() + ": " + e.ToString()); + } + else throw; //ThreadAbortException should not be caught + } + } } else { response_msg = "Unknown command '" + command_name + "'. Use '" + (Settings.internalCmdChar == ' ' ? "" : "" + Settings.internalCmdChar) + "help' for help."; return false; } + return true; }