| @@ -34,8 +34,8 @@ namespace Discord.Commands | |||||
| public string Category { get; internal set; } | public string Category { get; internal set; } | ||||
| public bool IsHidden { get; internal set; } | public bool IsHidden { get; internal set; } | ||||
| public string Description { get; internal set; } | public string Description { get; internal set; } | ||||
| public int? MinArgs { get; private set; } | |||||
| public int? MaxArgs { get; private set; } | |||||
| //public int? MinArgs { get; private set; } | |||||
| //public int? MaxArgs { get; private set; } | |||||
| public IEnumerable<string> Aliases => _aliases; | public IEnumerable<string> Aliases => _aliases; | ||||
| private string[] _aliases; | private string[] _aliases; | ||||
| @@ -61,7 +61,7 @@ namespace Discord.Commands | |||||
| internal void SetParameters(CommandParameter[] parameters) | internal void SetParameters(CommandParameter[] parameters) | ||||
| { | { | ||||
| _parameters = parameters; | _parameters = parameters; | ||||
| if (parameters != null) | |||||
| /*if (parameters != null) | |||||
| { | { | ||||
| if (parameters.Length == 0) | if (parameters.Length == 0) | ||||
| { | { | ||||
| @@ -88,7 +88,7 @@ namespace Discord.Commands | |||||
| else | else | ||||
| MinArgs = optionalStart.Value; | MinArgs = optionalStart.Value; | ||||
| } | } | ||||
| } | |||||
| }*/ | |||||
| } | } | ||||
| internal void SetChecks(IPermissionChecker[] checks) | internal void SetChecks(IPermissionChecker[] checks) | ||||
| { | { | ||||
| @@ -78,10 +78,7 @@ namespace Discord.Commands | |||||
| { | { | ||||
| if (startPosition == endPosition && (parameter == null || parameter.Type != ParameterType.Multiple)) //Is first char of a new arg | if (startPosition == endPosition && (parameter == null || parameter.Type != ParameterType.Multiple)) //Is first char of a new arg | ||||
| { | { | ||||
| if (argList.Count == command.MaxArgs) | |||||
| return CommandErrorType.BadArgCount; | |||||
| parameter = command._parameters[argList.Count]; | |||||
| parameter = expectedArgs[argList.Count]; | |||||
| if (parameter.Type == ParameterType.Unparsed) | if (parameter.Type == ParameterType.Unparsed) | ||||
| { | { | ||||
| argList.Add(input.Substring(startPosition)); | argList.Add(input.Substring(startPosition)); | ||||
| @@ -147,9 +144,9 @@ namespace Discord.Commands | |||||
| } | } | ||||
| } | } | ||||
| for (int i = argList.Count; i < command._parameters.Length; i++) | |||||
| for (int i = argList.Count; i < expectedArgs.Length; i++) | |||||
| { | { | ||||
| var param = command._parameters[i]; | |||||
| var param = expectedArgs[i]; | |||||
| switch (param.Type) | switch (param.Type) | ||||
| { | { | ||||
| case ParameterType.Required: | case ParameterType.Required: | ||||
| @@ -161,6 +158,12 @@ namespace Discord.Commands | |||||
| } | } | ||||
| } | } | ||||
| if (argList.Count > expectedArgs.Length) | |||||
| { | |||||
| if (expectedArgs.Length == 0 || expectedArgs[expectedArgs.Length - 1].Type != ParameterType.Multiple) | |||||
| return CommandErrorType.BadArgCount; | |||||
| } | |||||
| args = argList.ToArray(); | args = argList.ToArray(); | ||||
| return null; | return null; | ||||
| } | } | ||||