-
-
Notifications
You must be signed in to change notification settings - Fork 299
/
AliasesAttribute.cs
32 lines (28 loc) · 1.02 KB
/
AliasesAttribute.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
namespace DSharpPlus.CommandsNext.Attributes;
/// <summary>
/// Adds aliases to this command or group.
/// </summary>
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = false)]
public sealed class AliasesAttribute : Attribute
{
/// <summary>
/// Gets this group's aliases.
/// </summary>
public IReadOnlyList<string> Aliases { get; }
/// <summary>
/// Adds aliases to this command or group.
/// </summary>
/// <param name="aliases">Aliases to add to this command or group.</param>
public AliasesAttribute(params string[] aliases)
{
if (aliases.Any(xa => xa == null || xa.Any(xc => char.IsWhiteSpace(xc))))
{
throw new ArgumentException("Aliases cannot contain whitespace characters or null strings.", nameof(aliases));
}
this.Aliases = new ReadOnlyCollection<string>(aliases);
}
}