elliebot/src/Ellie.Bot.Common/Marmalade/IMarmaladeLoaderService.cs
2023-07-15 22:25:21 +12:00

24 lines
No EOL
916 B
C#

using System.Globalization;
namespace Ellie.Marmalade;
public interface IMarmaladeLoaderSevice
{
Task<MarmaladeLoadResult> LoadMarmaladeAsync(string marmaladeName);
Task<MarmaladeUnloadResult> UnloadMarmaladeAsync(string marmaladeName);
string GetCommandDescription(string marmaladeName, string commandName, CultureInfo culture);
string[] GetCommandExampleArgs(string marmaladeName, string commandName, CultureInfo culture);
Task ReloadStrings();
IReadOnlyCollection<string> GetAllMarmalades();
IReadOnlyCollection<MarmaladeStats> GetLoadedMarmalades(CultureInfo? cultureInfo = null);
}
public sealed record MarmaladeStats(string Name,
string? Description,
IReadOnlyCollection<CanaryStats> Canaries);
public sealed record CanaryStats(string Name,
string? Prefix,
IReadOnlyCollection<CanaryCommandStats> Commands);
public sealed record CanaryCommandStats(string Name);