Include which command failed to build on exception
This commit is contained in:
@@ -31,39 +31,46 @@ namespace Discord.Commands
|
|||||||
|
|
||||||
internal Command(MethodInfo source, Module module, object instance, CommandAttribute attribute, string groupPrefix)
|
internal Command(MethodInfo source, Module module, object instance, CommandAttribute attribute, string groupPrefix)
|
||||||
{
|
{
|
||||||
Source = source;
|
try
|
||||||
Module = module;
|
{
|
||||||
_instance = instance;
|
Source = source;
|
||||||
|
Module = module;
|
||||||
|
_instance = instance;
|
||||||
|
|
||||||
Name = source.Name;
|
Name = source.Name;
|
||||||
Text = groupPrefix + attribute.Text;
|
Text = groupPrefix + attribute.Text;
|
||||||
|
|
||||||
var aliasesBuilder = ImmutableArray.CreateBuilder<string>();
|
var aliasesBuilder = ImmutableArray.CreateBuilder<string>();
|
||||||
|
|
||||||
aliasesBuilder.Add(Text);
|
aliasesBuilder.Add(Text);
|
||||||
|
|
||||||
var aliasesAttr = source.GetCustomAttribute<AliasAttribute>();
|
var aliasesAttr = source.GetCustomAttribute<AliasAttribute>();
|
||||||
if (aliasesAttr != null)
|
if (aliasesAttr != null)
|
||||||
aliasesBuilder.AddRange(aliasesAttr.Aliases.Select(x => groupPrefix + x));
|
aliasesBuilder.AddRange(aliasesAttr.Aliases.Select(x => groupPrefix + x));
|
||||||
|
|
||||||
Aliases = aliasesBuilder.ToImmutable();
|
Aliases = aliasesBuilder.ToImmutable();
|
||||||
|
|
||||||
var nameAttr = source.GetCustomAttribute<NameAttribute>();
|
var nameAttr = source.GetCustomAttribute<NameAttribute>();
|
||||||
if (nameAttr != null)
|
if (nameAttr != null)
|
||||||
Name = nameAttr.Text;
|
Name = nameAttr.Text;
|
||||||
|
|
||||||
var description = source.GetCustomAttribute<DescriptionAttribute>();
|
var description = source.GetCustomAttribute<DescriptionAttribute>();
|
||||||
if (description != null)
|
if (description != null)
|
||||||
Description = description.Text;
|
Description = description.Text;
|
||||||
|
|
||||||
var summary = source.GetCustomAttribute<SummaryAttribute>();
|
var summary = source.GetCustomAttribute<SummaryAttribute>();
|
||||||
if (summary != null)
|
if (summary != null)
|
||||||
Summary = summary.Text;
|
Summary = summary.Text;
|
||||||
|
|
||||||
Parameters = BuildParameters(source);
|
Parameters = BuildParameters(source);
|
||||||
HasVarArgs = Parameters.Count > 0 ? Parameters[Parameters.Count - 1].IsMultiple : false;
|
HasVarArgs = Parameters.Count > 0 ? Parameters[Parameters.Count - 1].IsMultiple : false;
|
||||||
Preconditions = BuildPreconditions(source);
|
Preconditions = BuildPreconditions(source);
|
||||||
_action = BuildAction(source);
|
_action = BuildAction(source);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw new Exception($"Failed to build command {source.DeclaringType.FullName}.{source.Name}", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PreconditionResult> CheckPreconditions(IUserMessage context)
|
public async Task<PreconditionResult> CheckPreconditions(IUserMessage context)
|
||||||
|
|||||||
Reference in New Issue
Block a user