Merge pull request #308 from Joe4evr/AutoLoadFix
Exclude abstract types from being loaded as modules.
This commit is contained in:
@@ -70,13 +70,16 @@ namespace Discord.Commands
|
||||
await _moduleLock.WaitAsync().ConfigureAwait(false);
|
||||
try
|
||||
{
|
||||
if (_moduleDefs.ContainsKey(typeof(T)))
|
||||
throw new ArgumentException($"This module has already been added.");
|
||||
|
||||
var typeInfo = typeof(T).GetTypeInfo();
|
||||
if (!_moduleTypeInfo.IsAssignableFrom(typeInfo))
|
||||
throw new ArgumentException($"Modules must inherit ModuleBase.");
|
||||
|
||||
if (typeInfo.IsAbstract)
|
||||
throw new InvalidOperationException("Modules must not be abstract.");
|
||||
|
||||
if (_moduleDefs.ContainsKey(typeof(T)))
|
||||
throw new ArgumentException($"This module has already been added.");
|
||||
|
||||
return AddModuleInternal(typeInfo, dependencyMap);
|
||||
}
|
||||
finally
|
||||
@@ -98,7 +101,7 @@ namespace Discord.Commands
|
||||
if (_moduleTypeInfo.IsAssignableFrom(typeInfo))
|
||||
{
|
||||
var dontAutoLoad = typeInfo.GetCustomAttribute<DontAutoLoadAttribute>();
|
||||
if (dontAutoLoad == null)
|
||||
if (dontAutoLoad == null && !typeInfo.IsAbstract)
|
||||
moduleDefs.Add(AddModuleInternal(typeInfo, dependencyMap));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user