using Milimoe.FunGame.Core.Api.Utility; namespace Oshima.Core.Configs { public class Ignore { public static HashSet RepeatIgnore { get; set; } = []; public static List CallBrotherQQIgnore { get; set; } = []; /// /// 这个属性暂时没用到 标记一下 /// public static List QQGroupIgnore { get; set; } = []; public static List RepeatQQIgnore { get; set; } = []; public static List ReverseAtIgnore { get; set; } = []; public static PluginConfig Configs { get; set; } = new("rainbot", "ignore"); public static void InitIgnore() { PluginConfig configs = new("rainbot", "ignore"); configs.LoadConfig(); if (configs.TryGetValue("RepeatIgnore", out object? value) && value != null) { RepeatIgnore = new HashSet((List)value); } if (configs.TryGetValue("CallBrotherQQIgnore", out value) && value != null) { CallBrotherQQIgnore = new List((List)value); } if (configs.TryGetValue("QQGroupIgnore", out value) && value != null) { QQGroupIgnore = (List)value; } if (configs.TryGetValue("RepeatQQIgnore", out value) && value != null) { RepeatQQIgnore = (List)value; } if (configs.TryGetValue("ReverseAtIgnore", out value) && value != null) { ReverseAtIgnore = (List)value; } } public static void SaveConfig() { Configs.Add("RepeatIgnore", RepeatIgnore); Configs.Add("CallBrotherQQIgnore", CallBrotherQQIgnore); Configs.Add("QQGroupIgnore", QQGroupIgnore); Configs.Add("RepeatQQIgnore", RepeatQQIgnore); Configs.Add("ReverseAtIgnore", ReverseAtIgnore); Configs.SaveConfig(); } public static bool AddValue(string part, bool isadd, object value) { try { string strv = value.ToString() ?? ""; switch (part.ToLower()) { case "repeatignore": if (isadd) RepeatIgnore.Add(strv); else RepeatIgnore.Remove(strv); break; case "callbrotherqqignore": if (long.TryParse(strv, out long lv)) { if (isadd) CallBrotherQQIgnore.Add(lv); else CallBrotherQQIgnore.Remove(lv); } break; case "qqgroupignore": if (long.TryParse(strv, out lv)) { if (isadd) QQGroupIgnore.Add(lv); else QQGroupIgnore.Remove(lv); } break; case "repeatqqignore": if (long.TryParse(strv, out lv)) { if (isadd) RepeatQQIgnore.Add(lv); else RepeatQQIgnore.Remove(lv); } break; case "reverseatignore": if (long.TryParse(strv, out lv)) { if (isadd) ReverseAtIgnore.Add(lv); else ReverseAtIgnore.Remove(lv); } break; default: return false; } } catch { return false; } return true; } public static string ShowList(string group) { List list = []; switch (group.ToLower()) { case "repeatignore": list = [.. RepeatIgnore]; break; case "callbrotherqqignore": list = CallBrotherQQIgnore.Select(x => x.ToString()).ToList(); break; case "qqgroupignore": list = QQGroupIgnore.Select(x => x.ToString()).ToList(); break; case "repeatqqignore": list = RepeatQQIgnore.Select(x => x.ToString()).ToList(); break; case "reverseatignore": list = ReverseAtIgnore.Select(x => x.ToString()).ToList(); break; } return list.Count > 0 ? "列表" + group + "拥有以下成员:" + "\r\n" + string.Join("\r\n", list) : "此列表不存在或没有任何成员。"; } } }