namespace QuestShare.Server.Managers { public class PartyManager { private static List Parties = []; public static void CreateParty(string host, List members) { members.Add(host); Parties.Add(new Party { Host = host, Members = members }); } public static void JoinParty(string host, string member) { var party = Parties.Find(p => p.Host == host); party?.Members.Add(member); } public static void LeaveParty(string host, string member) { var party = Parties.Find(p => p.Host == host); party?.Members.Remove(member); } public static void DeleteParty(string host) { Parties.RemoveAll(p => p.Host == host); } public static List GetPartyMembers(string host) { var party = Parties.Find(p => p.Host == host); return party?.Members ?? new List(); } public static bool IsInParty(string member, string shareCode) { var share = Parties.Find(p => p.HostShareCode == shareCode); return share?.Members.Contains(member) ?? false; } } internal sealed record Party { public string Host { get; set; } = null!; public string HostShareCode { get; set; } = null!; public List Members { get; set; } = null!; } }