using Milimoe.FunGame.Core.Api.Utility; using Oshima.Core.Constant; namespace Oshima.Core.Configs { public class Daily { public static bool DailyNews { get; set; } = false; public static bool ClearDailys { get; set; } = true; public static Dictionary UserDailys { get; } = []; public static List GreatFortune { get; set; } = []; public static List ModerateFortune { get; set; } = []; public static List GoodFortune { get; set; } = []; public static List MinorFortune { get; set; } = []; public static List Misfortune { get; set; } = []; public static List GreatMisfortune { get; set; } = []; public static List DailyTypes { get; set; } = []; public static PluginConfig DailyContent { get; set; } = new("rainbot", "daily"); public static PluginConfig Configs { get; set; } = new("rainbot", "userdaliys"); public static void InitDaily() { DailyContent.LoadConfig(); if (DailyContent.TryGetValue("GreatFortune", out object? value) && value != null) { GreatFortune = (List)value; } if (DailyContent.TryGetValue("ModerateFortune", out value) && value != null) { ModerateFortune = (List)value; } if (DailyContent.TryGetValue("GoodFortune", out value) && value != null) { GoodFortune = (List)value; } if (DailyContent.TryGetValue("SmallFortune", out value) && value != null) { MinorFortune = (List)value; } if (DailyContent.TryGetValue("Misfortune", out value) && value != null) { Misfortune = (List)value; } if (DailyContent.TryGetValue("GreatMisfortune", out value) && value != null) { GreatMisfortune = (List)value; } DailyTypes.Clear(); if (GreatFortune.Count != 0) { DailyTypes.Add(DailyType.GreatFortune); } if (ModerateFortune.Count != 0) { DailyTypes.Add(DailyType.ModerateFortune); } if (GoodFortune.Count != 0) { DailyTypes.Add(DailyType.GoodFortune); } if (MinorFortune.Count != 0) { DailyTypes.Add(DailyType.MinorFortune); } if (Misfortune.Count != 0) { DailyTypes.Add(DailyType.Misfortune); } if (GreatMisfortune.Count != 0) { DailyTypes.Add(DailyType.GreatMisfortune); } Configs.LoadConfig(); foreach (string str in Configs.Keys) { if (long.TryParse(str, out long qq) && Configs.TryGetValue(str, out object? value2) && value2 != null && !UserDailys.ContainsKey(qq)) { UserDailys.Add(qq, value2.ToString() ?? ""); if (UserDailys[qq] == "") UserDailys.Remove(qq); } } SaveDaily(); } public static void SaveDaily() { lock (Configs) { Configs.Clear(); foreach (long qq in UserDailys.Keys) { Configs.Add(qq.ToString(), UserDailys[qq]); } Configs.SaveConfig(); } } public static void ClearDaily() { UserDailys.Clear(); SaveDaily(); } } }