[UNTESTED] Adds an optional parameter to the Module attribute, "autoload", which defaults to true. Specifies whether or not the assembly crawler should load this module.tags/1.0-rc
| @@ -6,13 +6,16 @@ namespace Discord.Commands | |||||
| public class ModuleAttribute : Attribute | public class ModuleAttribute : Attribute | ||||
| { | { | ||||
| public string Prefix { get; } | public string Prefix { get; } | ||||
| public ModuleAttribute() | |||||
| public bool Autoload { get; } | |||||
| public ModuleAttribute(bool autoload = true) | |||||
| { | { | ||||
| Prefix = null; | Prefix = null; | ||||
| Autoload = autoload; | |||||
| } | } | ||||
| public ModuleAttribute(string prefix) | |||||
| public ModuleAttribute(string prefix, bool autoload = true) | |||||
| { | { | ||||
| Prefix = prefix; | Prefix = prefix; | ||||
| Autoload = autoload; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -174,7 +174,7 @@ namespace Discord.Commands | |||||
| { | { | ||||
| var typeInfo = type.GetTypeInfo(); | var typeInfo = type.GetTypeInfo(); | ||||
| var moduleAttr = typeInfo.GetCustomAttribute<ModuleAttribute>(); | var moduleAttr = typeInfo.GetCustomAttribute<ModuleAttribute>(); | ||||
| if (moduleAttr != null) | |||||
| if (moduleAttr != null && moduleAttr.Autoload) | |||||
| { | { | ||||
| var moduleInstance = ReflectionUtils.CreateObject(typeInfo); | var moduleInstance = ReflectionUtils.CreateObject(typeInfo); | ||||
| modules.Add(LoadInternal(moduleInstance, moduleAttr, typeInfo)); | modules.Add(LoadInternal(moduleInstance, moduleAttr, typeInfo)); | ||||