示例#1
0
            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);
            }
示例#2
0
 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
     });
 }
示例#3
0
            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);
            }
示例#4
0
 public bool HasManager(string userId)
 {
     return(ManagerIds.Contains(userId));
 }