From 9171872ec4b9106ca8a03d3a216757ec868aa181 Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Mon, 8 May 2023 16:00:00 +0100 Subject: [PATCH] refactor: offer cls-compliant attribute ctors --- .../ExecutionChecks/RequireAvatarNameAttribute.cs | 14 ++++++++++++++ .../ExecutionChecks/RequireUserIdAttribute.cs | 14 ++++++++++++++ .../ExecutionChecks/RequireUserNameAttribute.cs | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs index 5b851a6..c395675 100644 --- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs +++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs @@ -1,15 +1,29 @@ namespace VpSharp.Commands.Attributes.ExecutionChecks; +#pragma warning disable CA1019 // Define accessors for attribute arguments + /// /// Specifies that this command can only be run by bots. /// public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute { + /// + /// Initializes a new instance of the class. + /// + /// An enumerable collection of allowed user names. + /// is . + public RequireAvatarNameAttribute(IEnumerable names) + { + ArgumentNullException.ThrowIfNull(names); + Names = names.ToArray(); + } + /// /// Initializes a new instance of the class. /// /// An array of allowed user names. /// is . + [CLSCompliant(false)] public RequireAvatarNameAttribute(params string[] names) { ArgumentNullException.ThrowIfNull(names); diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs index 57541b1..cfeefd6 100644 --- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs +++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs @@ -1,15 +1,29 @@ namespace VpSharp.Commands.Attributes.ExecutionChecks; +#pragma warning disable CA1019 // Define accessors for attribute arguments + /// /// Specifies that this command can only be run by bots. /// public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute { + /// + /// Initializes a new instance of the class. + /// + /// An enumerable collection of allowed user IDs. + /// is . + public RequireUserIdAttribute(IEnumerable userIds) + { + ArgumentNullException.ThrowIfNull(userIds); + UserIds = userIds.ToArray(); + } + /// /// Initializes a new instance of the class. /// /// An array of allowed user IDs. /// is . + [CLSCompliant(false)] public RequireUserIdAttribute(params int[] userIds) { ArgumentNullException.ThrowIfNull(userIds); diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs index 5ccb619..7847a1f 100644 --- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs +++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs @@ -1,15 +1,29 @@ namespace VpSharp.Commands.Attributes.ExecutionChecks; +#pragma warning disable CA1019 // Define accessors for attribute arguments + /// /// Specifies that this command can only be run by bots. /// public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute { + /// + /// Initializes a new instance of the class. + /// + /// An enumerable collection of allowed user names. + /// is . + public RequireUserNameAttribute(IEnumerable names) + { + ArgumentNullException.ThrowIfNull(names); + Names = names.ToArray(); + } + /// /// Initializes a new instance of the class. /// /// An array of allowed user names. /// is . + [CLSCompliant(false)] public RequireUserNameAttribute(params string[] names) { ArgumentNullException.ThrowIfNull(names);