@@ -87,6 +87,9 @@ namespace Discord.Commands | |||||
public async Task<PreconditionResult> CheckPreconditions(CommandContext context, IDependencyMap map = null) | public async Task<PreconditionResult> CheckPreconditions(CommandContext context, IDependencyMap map = null) | ||||
{ | { | ||||
if (map == null) | |||||
map = DependencyMap.Empty; | |||||
foreach (PreconditionAttribute precondition in Module.Preconditions) | foreach (PreconditionAttribute precondition in Module.Preconditions) | ||||
{ | { | ||||
var result = await precondition.CheckPermissions(context, this, map).ConfigureAwait(false); | var result = await precondition.CheckPermissions(context, this, map).ConfigureAwait(false); | ||||
@@ -150,6 +153,9 @@ namespace Discord.Commands | |||||
} | } | ||||
public async Task<ExecuteResult> Execute(CommandContext context, IEnumerable<object> argList, IEnumerable<object> paramList, IDependencyMap map) | public async Task<ExecuteResult> Execute(CommandContext context, IEnumerable<object> argList, IEnumerable<object> paramList, IDependencyMap map) | ||||
{ | { | ||||
if (map == null) | |||||
map = DependencyMap.Empty; | |||||
try | try | ||||
{ | { | ||||
var args = GenerateArgs(argList, paramList); | var args = GenerateArgs(argList, paramList); | ||||
@@ -195,6 +195,8 @@ namespace Discord.Commands | |||||
=> Execute(context, context.Message.Content.Substring(argPos), dependencyMap, multiMatchHandling); | => Execute(context, context.Message.Content.Substring(argPos), dependencyMap, multiMatchHandling); | ||||
public async Task<IResult> Execute(CommandContext context, string input, IDependencyMap dependencyMap = null, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception) | public async Task<IResult> Execute(CommandContext context, string input, IDependencyMap dependencyMap = null, MultiMatchHandling multiMatchHandling = MultiMatchHandling.Exception) | ||||
{ | { | ||||
dependencyMap = dependencyMap ?? DependencyMap.Empty; | |||||
var searchResult = Search(context, input); | var searchResult = Search(context, input); | ||||
if (!searchResult.IsSuccess) | if (!searchResult.IsSuccess) | ||||
return searchResult; | return searchResult; | ||||
@@ -7,6 +7,8 @@ namespace Discord.Commands | |||||
{ | { | ||||
private Dictionary<Type, object> map; | private Dictionary<Type, object> map; | ||||
public static DependencyMap Empty => new DependencyMap(); | |||||
public DependencyMap() | public DependencyMap() | ||||
{ | { | ||||
map = new Dictionary<Type, object>(); | map = new Dictionary<Type, object>(); | ||||