Add Construct Method to InteractionModuleBase and Fix NRE on User-Built Module Creation (#2016)

This commit is contained in:
Cenk Ergen
2022-01-11 09:52:46 +03:00
committed by GitHub
parent 99d8ca4b6b
commit 4ed4718e18
3 changed files with 27 additions and 12 deletions

View File

@@ -329,19 +329,24 @@ namespace Discord.Interactions.Builders
internal ModuleInfo Build (InteractionService interactionService, IServiceProvider services, ModuleInfo parent = null)
{
var moduleInfo = new ModuleInfo(this, interactionService, services, parent);
IInteractionModuleBase instance = ReflectionUtils<IInteractionModuleBase>.CreateObject(TypeInfo, interactionService, services);
try
if (TypeInfo is not null && ModuleClassBuilder.IsValidModuleDefinition(TypeInfo))
{
instance.OnModuleBuilding(interactionService, moduleInfo);
}
finally
{
( instance as IDisposable )?.Dispose();
}
var instance = ReflectionUtils<IInteractionModuleBase>.CreateObject(TypeInfo, interactionService, services);
return moduleInfo;
try
{
instance.Construct(this, interactionService);
var moduleInfo = new ModuleInfo(this, interactionService, services, parent);
instance.OnModuleBuilding(interactionService, moduleInfo);
return moduleInfo;
}
finally
{
(instance as IDisposable)?.Dispose();
}
}
else
return new(this, interactionService, services, parent);
}
}
}