Apply consistency to attributes in the commands extension (#928)

* Apply consistency to attributes in the commands extension

This resolves #527.

Not sure if I missed any, putting this up for review.

* Allow preconditions to be used multiple times (for use with groups)
This commit is contained in:
Christopher F
2018-01-08 12:56:31 -05:00
committed by GitHub
parent 42c879c37c
commit 97397f3617
15 changed files with 25 additions and 27 deletions

View File

@@ -3,7 +3,7 @@ using System;
namespace Discord.Commands namespace Discord.Commands
{ {
/// <summary> Provides aliases for a command. </summary> /// <summary> Provides aliases for a command. </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class AliasAttribute : Attribute public class AliasAttribute : Attribute
{ {
/// <summary> The aliases which have been defined for the command. </summary> /// <summary> The aliases which have been defined for the command. </summary>

View File

@@ -1,8 +1,8 @@
using System; using System;
namespace Discord.Commands namespace Discord.Commands
{ {
[AttributeUsage(AttributeTargets.Method)] [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class CommandAttribute : Attribute public class CommandAttribute : Attribute
{ {
public string Text { get; } public string Text { get; }

View File

@@ -1,8 +1,8 @@
using System; using System;
namespace Discord.Commands namespace Discord.Commands
{ {
[AttributeUsage(AttributeTargets.Class)] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class DontAutoLoadAttribute : Attribute public class DontAutoLoadAttribute : Attribute
{ {
} }

View File

@@ -2,7 +2,7 @@ using System;
namespace Discord.Commands { namespace Discord.Commands {
[AttributeUsage(AttributeTargets.Property)] [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class DontInjectAttribute : Attribute { public class DontInjectAttribute : Attribute {
} }

View File

@@ -1,8 +1,8 @@
using System; using System;
namespace Discord.Commands namespace Discord.Commands
{ {
[AttributeUsage(AttributeTargets.Class)] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class GroupAttribute : Attribute public class GroupAttribute : Attribute
{ {
public string Prefix { get; } public string Prefix { get; }

View File

@@ -3,7 +3,7 @@ using System;
namespace Discord.Commands namespace Discord.Commands
{ {
// Override public name of command/module // Override public name of command/module
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Parameter)] [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class NameAttribute : Attribute public class NameAttribute : Attribute
{ {
public string Text { get; } public string Text { get; }

View File

@@ -4,7 +4,7 @@ using System.Reflection;
namespace Discord.Commands namespace Discord.Commands
{ {
[AttributeUsage(AttributeTargets.Parameter)] [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class OverrideTypeReaderAttribute : Attribute public class OverrideTypeReaderAttribute : Attribute
{ {
private static readonly TypeInfo _typeReaderTypeInfo = typeof(TypeReader).GetTypeInfo(); private static readonly TypeInfo _typeReaderTypeInfo = typeof(TypeReader).GetTypeInfo();

View File

@@ -1,6 +1,5 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
namespace Discord.Commands namespace Discord.Commands
{ {

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
@@ -15,7 +15,7 @@ namespace Discord.Commands
/// <summary> /// <summary>
/// Require that the command be invoked in a specified context. /// Require that the command be invoked in a specified context.
/// </summary> /// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class RequireContextAttribute : PreconditionAttribute public class RequireContextAttribute : PreconditionAttribute
{ {
public ContextType Contexts { get; } public ContextType Contexts { get; }

View File

@@ -1,4 +1,4 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Discord.Commands namespace Discord.Commands
@@ -6,7 +6,7 @@ namespace Discord.Commands
/// <summary> /// <summary>
/// Require that the command is invoked in a channel marked NSFW /// Require that the command is invoked in a channel marked NSFW
/// </summary> /// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class RequireNsfwAttribute : PreconditionAttribute public class RequireNsfwAttribute : PreconditionAttribute
{ {
public override Task<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services) public override Task<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services)

View File

@@ -1,7 +1,6 @@
#pragma warning disable CS0618 #pragma warning disable CS0618
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
namespace Discord.Commands namespace Discord.Commands
{ {
@@ -9,7 +8,7 @@ namespace Discord.Commands
/// Require that the command is invoked by the owner of the bot. /// Require that the command is invoked by the owner of the bot.
/// </summary> /// </summary>
/// <remarks>This precondition will only work if the bot is a bot account.</remarks> /// <remarks>This precondition will only work if the bot is a bot account.</remarks>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class RequireOwnerAttribute : PreconditionAttribute public class RequireOwnerAttribute : PreconditionAttribute
{ {
public override async Task<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services) public override async Task<PreconditionResult> CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services)

View File

@@ -3,7 +3,7 @@ using System;
namespace Discord.Commands namespace Discord.Commands
{ {
/// <summary> Sets priority of commands </summary> /// <summary> Sets priority of commands </summary>
[AttributeUsage(AttributeTargets.Method)] [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class PriorityAttribute : Attribute public class PriorityAttribute : Attribute
{ {
/// <summary> The priority which has been set for the command </summary> /// <summary> The priority which has been set for the command </summary>

View File

@@ -1,8 +1,8 @@
using System; using System;
namespace Discord.Commands namespace Discord.Commands
{ {
[AttributeUsage(AttributeTargets.Parameter)] [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class RemainderAttribute : Attribute public class RemainderAttribute : Attribute
{ {
} }

View File

@@ -1,9 +1,9 @@
using System; using System;
namespace Discord.Commands namespace Discord.Commands
{ {
// Extension of the Cosmetic Summary, for Groups, Commands, and Parameters // Extension of the Cosmetic Summary, for Groups, Commands, and Parameters
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)] [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class RemarksAttribute : Attribute public class RemarksAttribute : Attribute
{ {
public string Text { get; } public string Text { get; }

View File

@@ -1,9 +1,9 @@
using System; using System;
namespace Discord.Commands namespace Discord.Commands
{ {
// Cosmetic Summary, for Groups and Commands // Cosmetic Summary, for Groups and Commands
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Parameter)] [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class SummaryAttribute : Attribute public class SummaryAttribute : Attribute
{ {
public string Text { get; } public string Text { get; }