2025-02-17 22:12:35 -05:00

49 lines
1.5 KiB
C#

namespace QuestShare.Server.Managers
{
public class PartyManager
{
private static List<Party> Parties = [];
public static void CreateParty(string host, List<string> 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<string> GetPartyMembers(string host)
{
var party = Parties.Find(p => p.Host == host);
return party?.Members ?? new List<string>();
}
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<string> Members { get; set; } = null!;
}
}