From 30936c6164e22cdbb082a250620aa0f608e57354 Mon Sep 17 00:00:00 2001 From: John Date: Wed, 27 Dec 2017 16:05:50 -0500 Subject: [PATCH] Correct name & only pass in bool --- src/Discord.Net.Commands/CommandParser.cs | 8 ++++---- src/Discord.Net.Commands/CommandService.cs | 4 ++-- src/Discord.Net.Commands/CommandServiceConfig.cs | 4 ++-- src/Discord.Net.Commands/Info/CommandInfo.cs | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Discord.Net.Commands/CommandParser.cs b/src/Discord.Net.Commands/CommandParser.cs index 32241ea4b..d65d99349 100644 --- a/src/Discord.Net.Commands/CommandParser.cs +++ b/src/Discord.Net.Commands/CommandParser.cs @@ -14,7 +14,7 @@ namespace Discord.Commands QuotedParameter } - public static async Task ParseArgsAsync(CommandInfo command, ICommandContext context, CommandService commandService, IServiceProvider services, string input, int startPos) + public static async Task ParseArgsAsync(CommandInfo command, ICommandContext context, bool ignoreExtraArgs, IServiceProvider services, string input, int startPos) { ParameterInfo curParam = null; StringBuilder argBuilder = new StringBuilder(input.Length); @@ -110,10 +110,10 @@ namespace Discord.Commands { if (curParam == null) { - if (commandService._failOnTooManyArgs) - return ParseResult.FromError(CommandError.BadArgCount, "The input text has too many parameters."); - else + if (ignoreExtraArgs) break; + else + return ParseResult.FromError(CommandError.BadArgCount, "The input text has too many parameters."); } var typeReaderResult = await curParam.ParseAsync(context, argString, services).ConfigureAwait(false); diff --git a/src/Discord.Net.Commands/CommandService.cs b/src/Discord.Net.Commands/CommandService.cs index a3a5548ff..8e7dab898 100644 --- a/src/Discord.Net.Commands/CommandService.cs +++ b/src/Discord.Net.Commands/CommandService.cs @@ -27,7 +27,7 @@ namespace Discord.Commands private readonly HashSet _moduleDefs; private readonly CommandMap _map; - internal readonly bool _caseSensitive, _throwOnError, _failOnTooManyArgs; + internal readonly bool _caseSensitive, _throwOnError, _ignoreExtraArgs; internal readonly char _separatorChar; internal readonly RunMode _defaultRunMode; internal readonly Logger _cmdLogger; @@ -42,7 +42,7 @@ namespace Discord.Commands { _caseSensitive = config.CaseSensitiveCommands; _throwOnError = config.ThrowOnError; - _failOnTooManyArgs = config.FailOnTooManyArgs; + _ignoreExtraArgs = config.IgnoreExtraArgs; _separatorChar = config.SeparatorChar; _defaultRunMode = config.DefaultRunMode; if (_defaultRunMode == RunMode.Default) diff --git a/src/Discord.Net.Commands/CommandServiceConfig.cs b/src/Discord.Net.Commands/CommandServiceConfig.cs index da1cef4bc..7fdbe368b 100644 --- a/src/Discord.Net.Commands/CommandServiceConfig.cs +++ b/src/Discord.Net.Commands/CommandServiceConfig.cs @@ -16,7 +16,7 @@ /// Determines whether RunMode.Sync commands should push exceptions up to the caller. public bool ThrowOnError { get; set; } = true; - /// Determines whether the command execution should fail if too many parameters are provided. - public bool FailOnTooManyArgs { get; set; } = true; + /// Determines whether extra parameters should be ignored. + public bool IgnoreExtraArgs { get; set; } = false; } } diff --git a/src/Discord.Net.Commands/Info/CommandInfo.cs b/src/Discord.Net.Commands/Info/CommandInfo.cs index f467bd0d9..f0d406e8d 100644 --- a/src/Discord.Net.Commands/Info/CommandInfo.cs +++ b/src/Discord.Net.Commands/Info/CommandInfo.cs @@ -20,7 +20,7 @@ namespace Discord.Commands private readonly CommandService _commandService; private readonly Func _action; - + public ModuleInfo Module { get; } public string Name { get; } public string Summary { get; } @@ -119,7 +119,7 @@ namespace Discord.Commands return ParseResult.FromError(preconditionResult); string input = searchResult.Text.Substring(startIndex); - return await CommandParser.ParseArgsAsync(this, context, _commandService, services, input, 0).ConfigureAwait(false); + return await CommandParser.ParseArgsAsync(this, context, _commandService._ignoreExtraArgs, services, input, 0).ConfigureAwait(false); } public Task ExecuteAsync(ICommandContext context, ParseResult parseResult, IServiceProvider services)