From 9bef81e60086418e177c6d1c0efc0ac8089928b7 Mon Sep 17 00:00:00 2001 From: RogueException Date: Tue, 16 Aug 2016 01:44:50 -0300 Subject: [PATCH] Improve exception for parameterless commands. --- src/Discord.Net.Commands/Command.cs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/Discord.Net.Commands/Command.cs b/src/Discord.Net.Commands/Command.cs index f89be8b90..36cbdcc0f 100644 --- a/src/Discord.Net.Commands/Command.cs +++ b/src/Discord.Net.Commands/Command.cs @@ -96,20 +96,15 @@ namespace Discord.Commands private IReadOnlyList BuildParameters(MethodInfo methodInfo) { var parameters = methodInfo.GetParameters(); + if (parameters.Length == 0 || parameters[0].ParameterType != typeof(IMessage)) + throw new InvalidOperationException("The first parameter of a command must be IMessage."); + var paramBuilder = ImmutableArray.CreateBuilder(parameters.Length - 1); - for (int i = 0; i < parameters.Length; i++) + for (int i = 1; i < parameters.Length; i++) { var parameter = parameters[i]; var type = parameter.ParameterType; - - if (i == 0) - { - if (type != typeof(IMessage)) - throw new InvalidOperationException("The first parameter of a command must be IMessage."); - else - continue; - } - + //Detect 'params' bool isMultiple = parameter.GetCustomAttribute() != null; if (isMultiple)