Files
nadekobot/src/NadekoBot/Common/Attributes/CommandNameLoadHelper.cs
Kwoth ca9fa1b0ac - Renamed Prefix to prefix
- Updated some command string keys which were using command name to use method names now
2022-01-02 16:52:39 +01:00

30 lines
1.1 KiB
C#

using YamlDotNet.Serialization;
namespace NadekoBot.Common.Attributes;
public static class CommandNameLoadHelper
{
private static readonly IDeserializer _deserializer = new Deserializer();
public static Lazy<Dictionary<string, string[]>> LazyCommandAliases = new(() => LoadAliases());
public static Dictionary<string, string[]> LoadAliases(string aliasesFilePath = "data/aliases.yml")
{
var text = File.ReadAllText(aliasesFilePath);
return _deserializer.Deserialize<Dictionary<string, string[]>>(text);
}
public static string[] GetAliasesFor(string methodName)
=> LazyCommandAliases.Value.TryGetValue(methodName.ToLowerInvariant(), out var aliases) && aliases.Length > 1
? aliases.Skip(1).ToArray()
: Array.Empty<string>();
public static string GetCommandNameFor(string methodName)
{
methodName = methodName.ToLowerInvariant();
var toReturn = LazyCommandAliases.Value.TryGetValue(methodName, out var aliases) && aliases.Length > 0
? aliases[0]
: methodName;
return toReturn;
}
}