From 31427247256a376c8d35781f0cf373a86eb75619 Mon Sep 17 00:00:00 2001 From: FiniteReality Date: Sat, 18 Mar 2017 12:51:44 +0000 Subject: [PATCH] Remove generic CheckPreconditions method --- .../Attributes/ParameterPreconditionAttribute.cs | 2 +- src/Discord.Net.Commands/Info/ParameterInfo.cs | 11 +---------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs b/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs index 39457bbdb..168d15e5f 100644 --- a/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs +++ b/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs @@ -6,6 +6,6 @@ namespace Discord.Commands [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = true, Inherited = true)] public abstract class ParameterPreconditionAttribute : Attribute { - public abstract Task CheckPermissions(ICommandContext context, ParameterInfo parameter, T value, IDependencyMap map); + public abstract Task CheckPermissions(ICommandContext context, ParameterInfo parameter, object value, IDependencyMap map); } } \ No newline at end of file diff --git a/src/Discord.Net.Commands/Info/ParameterInfo.cs b/src/Discord.Net.Commands/Info/ParameterInfo.cs index 634e7b424..d49b84c7f 100644 --- a/src/Discord.Net.Commands/Info/ParameterInfo.cs +++ b/src/Discord.Net.Commands/Info/ParameterInfo.cs @@ -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 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); - var result = await resultTask.ConfigureAwait(false); + var result = await precondition.CheckPermissions(context, this, arg, map).ConfigureAwait(false); if (!result.IsSuccess) return result; }