49 lines
1.5 KiB
C#
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!;
|
|
}
|
|
}
|