Ensure command completes before cleaning up

This commit is contained in:
RogueException
2017-04-22 08:04:33 -03:00
parent e762dddfbb
commit 1c6eebf875

View File

@@ -160,14 +160,15 @@ namespace Discord.Commands
var createInstance = ReflectionUtils.CreateBuilder<IModuleBase>(typeInfo, service); var createInstance = ReflectionUtils.CreateBuilder<IModuleBase>(typeInfo, service);
builder.Callback = (ctx, args, map) => builder.Callback = async (ctx, args, map) =>
{ {
var instance = createInstance(map); var instance = createInstance(map);
instance.SetContext(ctx); instance.SetContext(ctx);
try try
{ {
instance.BeforeExecute(); instance.BeforeExecute();
return method.Invoke(instance, args) as Task ?? Task.Delay(0); var task = method.Invoke(instance, args) as Task ?? Task.Delay(0);
await task.ConfigureAwait(false);
} }
finally finally
{ {