From a7c6ae7382490c78c3b225794e1d039aa17262f9 Mon Sep 17 00:00:00 2001 From: sirhamsteralot Date: Thu, 27 Dec 2018 22:57:27 +0100 Subject: [PATCH] Invoke the Action directly --- Torch/Commands/Command.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Torch/Commands/Command.cs b/Torch/Commands/Command.cs index 55d8c52..3a167ac 100644 --- a/Torch/Commands/Command.cs +++ b/Torch/Commands/Command.cs @@ -15,11 +15,13 @@ namespace Torch.Commands { public class Command { + public delegate void CommandAction(CommandContext context, object[] arguments); + public MyPromoteLevel MinimumPromoteLevel { get; } public string Name { get; } public string Description { get; } public string HelpText { get; } - public Delegate Action { get; } + public CommandAction Action { get; } public Type Module { get; } public List Path { get; } = new List(); public ITorchPlugin Plugin { get; } @@ -30,7 +32,7 @@ namespace Torch.Commands private int? _requiredParamCount; private static readonly Logger Log = LogManager.GetCurrentClassLogger(); - public Command(string name, string description, Delegate action, ITorchPlugin plugin, MyPromoteLevel? minimumPromoteLevel = null, string helpText = null) + public Command(string name, string description, CommandAction action, ITorchPlugin plugin, MyPromoteLevel? minimumPromoteLevel = null, string helpText = null) { HelpText = helpText; Action = action; @@ -155,6 +157,11 @@ namespace Torch.Commands parameters[i] = _parameters[i].DefaultValue; } + if (Action != null) + { + Action.Invoke(context, parameters); + return true; + } var moduleInstance = (CommandModule)Activator.CreateInstance(Module); moduleInstance.Context = context; _method.Invoke(moduleInstance, parameters);