using System; namespace DebuggingEssentials { [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field)] public class ConsoleCommand : Attribute { public string alias = string.Empty; public string command = string.Empty; public string description = string.Empty; public AccessLevel accessLevel = AccessLevel.Admin; public ConsoleCommand(AccessLevel accessLevel = AccessLevel.Admin) { this.accessLevel = accessLevel; } public ConsoleCommand(string command, string description = "", AccessLevel accessLevel = AccessLevel.Admin) { int num = command.LastIndexOf('.'); if (num != -1) { alias = command.Substring(0, num).Trim('.', ' '); command = command.Substring(num + 1); } this.command = command; this.description = description; this.accessLevel = accessLevel; } public bool HasAccess(AccessLevel accessLevel) { if (accessLevel == AccessLevel.Free && this.accessLevel != AccessLevel.Free) { return false; } if (accessLevel == AccessLevel.Special && this.accessLevel == AccessLevel.Admin) { return false; } return true; } } }