public bool RemoveMember(User user) { if (!HasMember(user.Id)) { return(false); } if (HasOwner(user.Id)) { if (ManagerIds.Count > 0) { OwnerId = ManagerIds.FirstOrDefault(); ManagerIds.Remove(OwnerId); } else { OwnerId = MemberIds.FirstOrDefault(); } } MemberIds.Remove(user.Id); ManagerIds.Remove(user.Id); Api.OnPlayerLeftFaction(this, user); return(true); }
public FactionInfo Serialize() { return(new FactionInfo { Id = Id, OwnerId = OwnerId, MemberIds = MemberIds.ToArray(), ManagerIds = ManagerIds.ToArray(), InviteIds = InviteIds.ToArray(), TaxRate = TaxRate, TaxChestId = TaxChest?.net?.ID, NextUpkeepPaymentTime = NextUpkeepPaymentTime }); }
public bool Demote(User user) { if (!MemberIds.Contains(user.Id)) { throw new InvalidOperationException($"Cannot demote player {user.Id} in faction {Id}, since they are not a member"); } if (!ManagerIds.Remove(user.Id)) { return(false); } Api.OnPlayerDemoted(this, user); return(true); }
public bool HasManager(string userId) { return(ManagerIds.Contains(userId)); }