Add CommandServiceConfig, DefaultRunMode

This adds an (optional) CommandServiceConfig, as well as a DefaultRunMode for commands.

This resolves #368 (for commands where a RunMode is not explicitly specified, a custom default value should be used)
This commit is contained in:
Christopher F
2016-11-25 18:49:35 -05:00
parent 8ec80663f0
commit f9c5e229d0
5 changed files with 16 additions and 4 deletions

View File

@@ -19,10 +19,13 @@ namespace Discord.Commands
private readonly ConcurrentBag<ModuleInfo> _moduleDefs;
private readonly CommandMap _map;
internal readonly RunMode _defaultRunMode;
public IEnumerable<ModuleInfo> Modules => _typedModuleDefs.Select(x => x.Value);
public IEnumerable<CommandInfo> Commands => _typedModuleDefs.SelectMany(x => x.Value.Commands);
public CommandService()
public CommandService() : this(new CommandServiceConfig()) { }
public CommandService(CommandServiceConfig config)
{
_moduleLock = new SemaphoreSlim(1, 1);
_typedModuleDefs = new ConcurrentDictionary<Type, ModuleInfo>();
@@ -64,6 +67,7 @@ namespace Discord.Commands
[typeof(IGroupUser)] = new UserTypeReader<IGroupUser>(),
[typeof(IGuildUser)] = new UserTypeReader<IGuildUser>(),
};
_defaultRunMode = config.DefaultRunMode;
}
//Modules