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 Identity Clone(bool includeMemberships) { PropertiesCollection properties = new PropertiesCollection(Properties, validateExisting: false); Identity clone = new Identity(properties) { Id = Id, Descriptor = new IdentityDescriptor(Descriptor), ProviderDisplayName = ProviderDisplayName, CustomDisplayName = CustomDisplayName, IsActive = IsActive, UniqueUserId = UniqueUserId, IsContainer = IsContainer, ResourceVersion = ResourceVersion, MetaTypeId = MetaTypeId }; if (includeMemberships) { clone.Members = CloneDescriptors(Members); clone.MemberOf = CloneDescriptors(MemberOf); clone.MemberIds = MemberIds?.ToList(); clone.MemberOfIds = MemberOfIds?.ToList(); } clone.MasterId = MasterId; return(clone); }
public bool AddMember(User user) { if (!MemberIds.Add(user.Id)) { return(false); } InviteIds.Remove(user.Id); Api.OnPlayerJoinedFaction(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 AddPlayerToParty(string playerId, string pit) { if (MemberIdToPit.ContainsKey(playerId)) { return(false); } if (IsAtFullCapacity()) { throw new Exception("The party is at full capacity"); } MemberIdToPit[playerId] = pit; MemberIds.Add(playerId); return(true); }
public bool RemovePlayerFromParty(string playerId) { if (!MemberIdToPit.ContainsKey(playerId)) { return(false); } if (MemberIdToPit.Count == 1) { throw new Exception("Cannot remove player if last member of the party"); } MemberIdToPit.Remove(playerId); MemberIds.Remove(playerId); if (LeaderPlayerId == playerId) { LeaderPlayerId = MemberIdToPit.ElementAt(0).Key; } return(true); }
public User[] GetAllActiveMembers() { return(MemberIds.Select(id => Instance.Users.Get(id)).Where(user => user != null).ToArray()); }
public bool HasMember(string userId) { return(MemberIds.Contains(userId)); }