31 lines
801 B
C#
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);
|
|
}
|
|
}
|
|
}
|