Browse Source

Improve exception for parameterless commands.

pull/204/head
RogueException 8 years ago
parent
commit
9bef81e600
1 changed files with 5 additions and 10 deletions
  1. +5
    -10
      src/Discord.Net.Commands/Command.cs

+ 5
- 10
src/Discord.Net.Commands/Command.cs View File

@@ -96,20 +96,15 @@ namespace Discord.Commands
private IReadOnlyList<CommandParameter> 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<CommandParameter>(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<ParamArrayAttribute>() != null;
if (isMultiple)


Loading…
Cancel
Save