Browse Source

Removed Min/MaxArgs

tags/docs-0.9
RogueException 9 years ago
parent
commit
c09c41599a
2 changed files with 13 additions and 10 deletions
  1. +4
    -4
      src/Discord.Net.Commands/Command.cs
  2. +9
    -6
      src/Discord.Net.Commands/CommandParser.cs

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

@@ -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)
{ {


+ 9
- 6
src/Discord.Net.Commands/CommandParser.cs View File

@@ -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;
} }


Loading…
Cancel
Save