mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-11 09:48:26 -04:00
Medusa System Added
Read about the medusa system [here](https://nadekobot.readthedocs.io/en/latest/medusa/creating-a-medusa/)
This commit is contained in:
40
src/Nadeko.Medusa/Strings/LocalMedusaStringsProvider.cs
Normal file
40
src/Nadeko.Medusa/Strings/LocalMedusaStringsProvider.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
namespace Nadeko.Snake;
|
||||
|
||||
public class LocalMedusaStringsProvider : IMedusaStringsProvider
|
||||
{
|
||||
private readonly StringsLoader _source;
|
||||
private IReadOnlyDictionary<string, IReadOnlyDictionary<string, string>> _responseStrings;
|
||||
private IReadOnlyDictionary<string, IReadOnlyDictionary<string, CommandStrings>> _commandStrings;
|
||||
|
||||
public LocalMedusaStringsProvider(StringsLoader source)
|
||||
{
|
||||
_source = source;
|
||||
_responseStrings = _source.GetResponseStrings();
|
||||
_commandStrings = _source.GetCommandStrings();
|
||||
}
|
||||
|
||||
public void Reload()
|
||||
{
|
||||
_responseStrings = _source.GetResponseStrings();
|
||||
_commandStrings = _source.GetCommandStrings();
|
||||
}
|
||||
|
||||
|
||||
public string? GetText(string localeName, string key)
|
||||
{
|
||||
if (_responseStrings.TryGetValue(localeName.ToLowerInvariant(), out var langStrings)
|
||||
&& langStrings.TryGetValue(key.ToLowerInvariant(), out var text))
|
||||
return text;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public CommandStrings? GetCommandStrings(string localeName, string commandName)
|
||||
{
|
||||
if (_commandStrings.TryGetValue(localeName.ToLowerInvariant(), out var langStrings)
|
||||
&& langStrings.TryGetValue(commandName.ToLowerInvariant(), out var strings))
|
||||
return strings;
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user