using NadekoBot.Common.Configs; namespace Nadeko.Medusa; public sealed class MedusaConfigService : ConfigServiceBase, IMedusaConfigService { private const string FILE_PATH = "data/medusae/medusa.yml"; private static readonly TypedKey _changeKey = new("config.medusa.updated"); public override string Name => "medusa"; public MedusaConfigService( IConfigSeria serializer, IPubSub pubSub) : base(FILE_PATH, serializer, pubSub, _changeKey) { } public IReadOnlyCollection GetLoadedMedusae() => Data.Loaded?.ToList() ?? new List(); public void AddLoadedMedusa(string name) { name = name.Trim().ToLowerInvariant(); ModifyConfig(conf => { if (conf.Loaded is null) conf.Loaded = new(); if(!conf.Loaded.Contains(name)) conf.Loaded.Add(name); }); } public void RemoveLoadedMedusa(string name) { name = name.Trim().ToLowerInvariant(); ModifyConfig(conf => { if (conf.Loaded is null) conf.Loaded = new(); conf.Loaded.Remove(name); }); } }