using System.Globalization; using Remora.Rest.Core; namespace Boyfriend.Data; /// /// Stores information about a guild. This information is not accessible via the Discord API. /// /// This information is stored on disk as a JSON file. public class GuildData { public readonly GuildConfiguration Configuration; public readonly string ConfigurationPath; public readonly Dictionary MemberData; public readonly string MemberDataPath; public readonly Dictionary ScheduledEvents; public readonly string ScheduledEventsPath; public GuildData( GuildConfiguration configuration, string configurationPath, Dictionary scheduledEvents, string scheduledEventsPath, Dictionary memberData, string memberDataPath) { Configuration = configuration; ConfigurationPath = configurationPath; ScheduledEvents = scheduledEvents; ScheduledEventsPath = scheduledEventsPath; MemberData = memberData; MemberDataPath = memberDataPath; } public CultureInfo Culture => Configuration.GetCulture(); public MemberData GetMemberData(Snowflake userId) { if (MemberData.TryGetValue(userId.Value, out var existing)) return existing; var newData = new MemberData(userId.Value, null); MemberData.Add(userId.Value, newData); return newData; } }