Browse Source

Remove generic CheckPreconditions method

pull/532/head
FiniteReality 8 years ago
parent
commit
3142724725
2 changed files with 2 additions and 11 deletions
  1. +1
    -1
      src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs
  2. +1
    -10
      src/Discord.Net.Commands/Info/ParameterInfo.cs

+ 1
- 1
src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs View File

@@ -6,6 +6,6 @@ namespace Discord.Commands
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = true, Inherited = true)]
public abstract class ParameterPreconditionAttribute : Attribute
{
public abstract Task<PreconditionResult> CheckPermissions<T>(ICommandContext context, ParameterInfo parameter, T value, IDependencyMap map);
public abstract Task<PreconditionResult> CheckPermissions(ICommandContext context, ParameterInfo parameter, object value, IDependencyMap map);
}
}

+ 1
- 10
src/Discord.Net.Commands/Info/ParameterInfo.cs View File

@@ -10,12 +10,7 @@ namespace Discord.Commands
{
public class ParameterInfo
{

private static MethodInfo _checkPermissionsMethod = typeof(ParameterPreconditionAttribute)
.GetTypeInfo().GetDeclaredMethod("CheckPermissions");

private readonly TypeReader _reader;
private readonly MethodInfo _specializedCheckPermissionsMethod;

public CommandInfo Command { get; }
public string Name { get; }
@@ -44,8 +39,6 @@ namespace Discord.Commands
Preconditions = builder.Preconditions.ToImmutableArray();

_reader = builder.TypeReader;

_specializedCheckPermissionsMethod = _checkPermissionsMethod.MakeGenericMethod(Type);
}

public async Task<PreconditionResult> CheckPreconditionsAsync(ICommandContext context, object arg, IDependencyMap map = null)
@@ -55,9 +48,7 @@ namespace Discord.Commands

foreach (var precondition in Preconditions)
{
object[] parameters = new []{ context, this, arg, map };
var resultTask = (_specializedCheckPermissionsMethod.Invoke(precondition, parameters) as Task<PreconditionResult>);
var result = await resultTask.ConfigureAwait(false);
var result = await precondition.CheckPermissions(context, this, arg, map).ConfigureAwait(false);
if (!result.IsSuccess)
return result;
}


Loading…
Cancel
Save