ircsharp/IRCRobots/Capability.cs

31 lines
801 B
C#

using System.Collections.Generic;
using System.Linq;
namespace IRCRobots
{
public class Capability : ICapability
{
public string Name { get; set; }
public string DraftName { get; set; }
public string Alias { get; }
public IEnumerable<string> DependsOn { get; set; }
private IEnumerable<string> Caps { get; }
public Capability()
{
Alias ??= Name;
Caps = new List<string> {Name, DraftName};
}
public string? Available(IEnumerable<string> capabilities)
{
return Caps.FirstOrDefault(cap => cap != null && capabilities.Contains(cap));
}
public bool Match(string capability)
{
return Caps.Contains(capability);
}
}
}