* Add ability to support different types of quotation marks * Added normal quotation mark to list of aliases, removed single quote mark * clean up leftover changes from testing * change quotation mark parsing to use a map of matching pairs * remove commented out code * Fix conventions of the command parser utility functions * change storage type of alias dictionary to be IReadOnlyDictionary * revert type of CommandServiceConfig QuotationMarkAliasMap to Dictionary * minor formatting changes to CommandParser * remove unnecessary whitespace * Move aliases outside of CommandInfo class * copy IReadOnlyDictionary to ImmutableDictionary * minor syntax changes in CommandServiceConfig * add newline before namespace for consistency * newline formatting tweak * simplification of GetMatch method for CommandParser * add more quote unicode punctuation pairs * add check for null value when building ImmutableDictionary * Move default alias map into a separate source file * Ensure that the collection passed into command service is not null
This commit is contained in:
committed by
Christopher F
parent
b52af7ae7c
commit
cee71ef35a
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
@@ -32,6 +32,7 @@ namespace Discord.Commands
|
||||
internal readonly RunMode _defaultRunMode;
|
||||
internal readonly Logger _cmdLogger;
|
||||
internal readonly LogManager _logManager;
|
||||
internal readonly IReadOnlyDictionary<char, char> _quotationMarkAliasMap;
|
||||
|
||||
public IEnumerable<ModuleInfo> Modules => _moduleDefs.Select(x => x);
|
||||
public IEnumerable<CommandInfo> Commands => _moduleDefs.SelectMany(x => x.Commands);
|
||||
@@ -45,6 +46,7 @@ namespace Discord.Commands
|
||||
_ignoreExtraArgs = config.IgnoreExtraArgs;
|
||||
_separatorChar = config.SeparatorChar;
|
||||
_defaultRunMode = config.DefaultRunMode;
|
||||
_quotationMarkAliasMap = (config.QuotationMarkAliasMap ?? new Dictionary<char, char>()).ToImmutableDictionary();
|
||||
if (_defaultRunMode == RunMode.Default)
|
||||
throw new InvalidOperationException("The default run mode cannot be set to Default.");
|
||||
|
||||
@@ -337,7 +339,6 @@ namespace Discord.Commands
|
||||
public async Task<IResult> ExecuteAsync(ICommandContext context, string input, IServiceProvider services, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception)
|
||||
{
|
||||
services = services ?? EmptyServiceProvider.Instance;
|
||||
|
||||
var searchResult = Search(context, input);
|
||||
if (!searchResult.IsSuccess)
|
||||
return searchResult;
|
||||
|
||||
Reference in New Issue
Block a user