diff --git a/src/Discord.Net.Commands/Attributes/AliasAttribute.cs b/src/Discord.Net.Commands/Attributes/AliasAttribute.cs
index 6e115bd60..6cd0abbb7 100644
--- a/src/Discord.Net.Commands/Attributes/AliasAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/AliasAttribute.cs
@@ -3,7 +3,7 @@ using System;
namespace Discord.Commands
{
/// Provides aliases for a command.
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class AliasAttribute : Attribute
{
/// The aliases which have been defined for the command.
diff --git a/src/Discord.Net.Commands/Attributes/CommandAttribute.cs b/src/Discord.Net.Commands/Attributes/CommandAttribute.cs
index 5ae6092eb..5f8e9ceaf 100644
--- a/src/Discord.Net.Commands/Attributes/CommandAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/CommandAttribute.cs
@@ -1,8 +1,8 @@
-using System;
+using System;
namespace Discord.Commands
{
- [AttributeUsage(AttributeTargets.Method)]
+ [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class CommandAttribute : Attribute
{
public string Text { get; }
diff --git a/src/Discord.Net.Commands/Attributes/DontAutoLoadAttribute.cs b/src/Discord.Net.Commands/Attributes/DontAutoLoadAttribute.cs
index d6a1c646e..cc23a6d15 100644
--- a/src/Discord.Net.Commands/Attributes/DontAutoLoadAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/DontAutoLoadAttribute.cs
@@ -1,8 +1,8 @@
-using System;
+using System;
namespace Discord.Commands
{
- [AttributeUsage(AttributeTargets.Class)]
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class DontAutoLoadAttribute : Attribute
{
}
diff --git a/src/Discord.Net.Commands/Attributes/DontInjectAttribute.cs b/src/Discord.Net.Commands/Attributes/DontInjectAttribute.cs
index bd966e129..c982d93a1 100644
--- a/src/Discord.Net.Commands/Attributes/DontInjectAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/DontInjectAttribute.cs
@@ -2,7 +2,7 @@ using System;
namespace Discord.Commands {
- [AttributeUsage(AttributeTargets.Property)]
+ [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class DontInjectAttribute : Attribute {
}
diff --git a/src/Discord.Net.Commands/Attributes/GroupAttribute.cs b/src/Discord.Net.Commands/Attributes/GroupAttribute.cs
index 105d256ec..b1760d149 100644
--- a/src/Discord.Net.Commands/Attributes/GroupAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/GroupAttribute.cs
@@ -1,8 +1,8 @@
-using System;
+using System;
namespace Discord.Commands
{
- [AttributeUsage(AttributeTargets.Class)]
+ [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class GroupAttribute : Attribute
{
public string Prefix { get; }
diff --git a/src/Discord.Net.Commands/Attributes/NameAttribute.cs b/src/Discord.Net.Commands/Attributes/NameAttribute.cs
index 0a5156fee..4a4b2bfed 100644
--- a/src/Discord.Net.Commands/Attributes/NameAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/NameAttribute.cs
@@ -3,7 +3,7 @@ using System;
namespace Discord.Commands
{
// 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 string Text { get; }
diff --git a/src/Discord.Net.Commands/Attributes/OverrideTypeReaderAttribute.cs b/src/Discord.Net.Commands/Attributes/OverrideTypeReaderAttribute.cs
index 37f685c95..44ab6d214 100644
--- a/src/Discord.Net.Commands/Attributes/OverrideTypeReaderAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/OverrideTypeReaderAttribute.cs
@@ -4,7 +4,7 @@ using System.Reflection;
namespace Discord.Commands
{
- [AttributeUsage(AttributeTargets.Parameter)]
+ [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class OverrideTypeReaderAttribute : Attribute
{
private static readonly TypeInfo _typeReaderTypeInfo = typeof(TypeReader).GetTypeInfo();
@@ -19,4 +19,4 @@ namespace Discord.Commands
TypeReader = overridenTypeReader;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs b/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs
index 209822583..3c5e8cf92 100644
--- a/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/ParameterPreconditionAttribute.cs
@@ -1,6 +1,5 @@
using System;
using System.Threading.Tasks;
-using Microsoft.Extensions.DependencyInjection;
namespace Discord.Commands
{
@@ -9,4 +8,4 @@ namespace Discord.Commands
{
public abstract Task CheckPermissionsAsync(ICommandContext context, ParameterInfo parameter, object value, IServiceProvider services);
}
-}
\ No newline at end of file
+}
diff --git a/src/Discord.Net.Commands/Attributes/Preconditions/RequireContextAttribute.cs b/src/Discord.Net.Commands/Attributes/Preconditions/RequireContextAttribute.cs
index 5fa0fb1b9..90af035e4 100644
--- a/src/Discord.Net.Commands/Attributes/Preconditions/RequireContextAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/Preconditions/RequireContextAttribute.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
@@ -15,7 +15,7 @@ namespace Discord.Commands
///
/// Require that the command be invoked in a specified context.
///
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class RequireContextAttribute : PreconditionAttribute
{
public ContextType Contexts { get; }
diff --git a/src/Discord.Net.Commands/Attributes/Preconditions/RequireNsfwAttribute.cs b/src/Discord.Net.Commands/Attributes/Preconditions/RequireNsfwAttribute.cs
index c8e3bfa82..273c764bd 100644
--- a/src/Discord.Net.Commands/Attributes/Preconditions/RequireNsfwAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/Preconditions/RequireNsfwAttribute.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Threading.Tasks;
namespace Discord.Commands
@@ -6,7 +6,7 @@ namespace Discord.Commands
///
/// Require that the command is invoked in a channel marked NSFW
///
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class RequireNsfwAttribute : PreconditionAttribute
{
public override Task CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services)
diff --git a/src/Discord.Net.Commands/Attributes/Preconditions/RequireOwnerAttribute.cs b/src/Discord.Net.Commands/Attributes/Preconditions/RequireOwnerAttribute.cs
index e370aeec4..7a8a009be 100644
--- a/src/Discord.Net.Commands/Attributes/Preconditions/RequireOwnerAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/Preconditions/RequireOwnerAttribute.cs
@@ -1,7 +1,6 @@
-#pragma warning disable CS0618
+#pragma warning disable CS0618
using System;
using System.Threading.Tasks;
-using Microsoft.Extensions.DependencyInjection;
namespace Discord.Commands
{
@@ -9,7 +8,7 @@ namespace Discord.Commands
/// Require that the command is invoked by the owner of the bot.
///
/// This precondition will only work if the bot is a bot account.
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
+ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class RequireOwnerAttribute : PreconditionAttribute
{
public override async Task CheckPermissionsAsync(ICommandContext context, CommandInfo command, IServiceProvider services)
diff --git a/src/Discord.Net.Commands/Attributes/PriorityAttribute.cs b/src/Discord.Net.Commands/Attributes/PriorityAttribute.cs
index 5120bb7d1..353e96e41 100644
--- a/src/Discord.Net.Commands/Attributes/PriorityAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/PriorityAttribute.cs
@@ -3,7 +3,7 @@ using System;
namespace Discord.Commands
{
/// Sets priority of commands
- [AttributeUsage(AttributeTargets.Method)]
+ [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class PriorityAttribute : Attribute
{
/// The priority which has been set for the command
diff --git a/src/Discord.Net.Commands/Attributes/RemainderAttribute.cs b/src/Discord.Net.Commands/Attributes/RemainderAttribute.cs
index 4aa16bebb..56938f167 100644
--- a/src/Discord.Net.Commands/Attributes/RemainderAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/RemainderAttribute.cs
@@ -1,8 +1,8 @@
-using System;
+using System;
namespace Discord.Commands
{
- [AttributeUsage(AttributeTargets.Parameter)]
+ [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
public class RemainderAttribute : Attribute
{
}
diff --git a/src/Discord.Net.Commands/Attributes/RemarksAttribute.cs b/src/Discord.Net.Commands/Attributes/RemarksAttribute.cs
index 44db18a79..c11f790a7 100644
--- a/src/Discord.Net.Commands/Attributes/RemarksAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/RemarksAttribute.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
namespace Discord.Commands
{
// 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 string Text { get; }
diff --git a/src/Discord.Net.Commands/Attributes/SummaryAttribute.cs b/src/Discord.Net.Commands/Attributes/SummaryAttribute.cs
index 46d52f3d9..641163408 100644
--- a/src/Discord.Net.Commands/Attributes/SummaryAttribute.cs
+++ b/src/Discord.Net.Commands/Attributes/SummaryAttribute.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
namespace Discord.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 string Text { get; }