public static void ParseCommand(ICommandSender sender, string message) { { var system = DefaultSystem; var prefix = system.GetPrefixes().FirstOrDefault(message.StartsWith); if (!string.IsNullOrWhiteSpace(prefix)) { var preE = new CommandPreExecutionEvent(sender, message, prefix, system); EventManager.CallEvent(preE); if (preE.Cancelled) { return; } preE.System.ParseCommand(preE.Sender, preE.Message.Substring(prefix.Length), preE.Prefix); var postE = new CommandPostExecutionEvent(preE.Sender, preE.Message, preE.Prefix, preE.System); EventManager.CallEvent(postE); return; } } foreach (var system in CommandSystems) { var prefix = system.GetPrefixes().FirstOrDefault(message.StartsWith); if (string.IsNullOrWhiteSpace(prefix)) { continue; } var preE = new CommandPreExecutionEvent(sender, message, prefix, system); EventManager.CallEvent(preE); if (preE.Cancelled) { return; } preE.System.ParseCommand(preE.Sender, preE.Message.Substring(prefix.Length), preE.Prefix); var postE = new CommandPostExecutionEvent(preE.Sender, preE.Message, preE.Prefix, preE.System); EventManager.CallEvent(postE); return; } }
public void PreProcess(CommandPreExecutionEvent e) { ConsoleFunctions.WriteInfoLine( $"PreProcess. System: {e.System.GetType().Name} EType: {e.Type} Prefix: {e.Prefix} Sender: {e.Sender.GetName()} " + $"Message: {{{e.Message}}}"); }