Esempio n. 1
0
        public void Startup(ConfigurationLoader loader)
        {
            HomeURI = loader.HomeURI;

            m_AgentInventoryService = loader.GetService <InventoryServiceInterface>(m_AgentInventoryServiceName);
            m_AgentAssetService     = loader.GetService <AssetServiceInterface>(m_AgentAssetServiceName);
            if (m_AgentProfileServiceName?.Length != 0)
            {
                m_AgentProfileService = loader.GetService <ProfileServiceInterface>(m_AgentProfileServiceName);
            }
            m_AgentFriendsService = loader.GetService <FriendsServiceInterface>(m_AgentFriendsServiceName);
            m_UserSessionService  = loader.GetService <UserSessionServiceInterface>(m_UserSessionServiceName);
            m_GridService         = loader.GetService <GridServiceInterface>(m_GridServiceName);
            if (m_OfflineIMServiceName?.Length != 0)
            {
                m_OfflineIMService = loader.GetService <OfflineIMServiceInterface>(m_OfflineIMServiceName);
            }
            if (m_AgentExperienceServiceName?.Length != 0)
            {
                loader.GetService(m_AgentExperienceServiceName, out m_AgentExperienceService);
            }
            if (m_AgentGroupsServiceName?.Length != 0)
            {
                loader.GetService(m_AgentGroupsServiceName, out m_AgentGroupsService);
            }
            m_UserAccountService    = loader.GetService <UserAccountServiceInterface>(m_UserAccountServiceName);
            m_AgentUserAgentService = new LocalUserAgentService(m_UserSessionService, m_UserAccountService, m_RequiresInventoryIDAsIMSessionID, HomeURI);

            m_Scenes               = loader.Scenes;
            m_Commands             = loader.CommandRegistry;
            m_CapsRedirector       = loader.CapsRedirector;
            m_PacketHandlerPlugins = loader.GetServicesByValue <IProtocolExtender>();
        }
Esempio n. 2
0
 public ViewerAgent(
     SceneList scenes,
     UUID agentID,
     string firstName,
     string lastName,
     Uri homeURI,
     UUID sessionID,
     UUID secureSessionID,
     ClientInfo clientInfo,
     UserAccount untrustedAccountInfo,
     AgentServiceList serviceList)
     : base(agentID, homeURI)
 {
     m_Scenes           = scenes;
     m_TeleportServices = serviceList.GetAll <IAgentTeleportServiceInterface>();
     foreach (IAgentTeleportServiceInterface service in m_TeleportServices)
     {
         service.Agent = this;
     }
     CollisionPlane         = Vector4.UnitW;
     SessionID              = sessionID;
     m_UntrustedAccountInfo = untrustedAccountInfo;
     m_SecureSessionID      = secureSessionID;
     Client              = clientInfo;
     m_AssetService      = serviceList.Get <AssetServiceInterface>();
     m_InventoryService  = serviceList.Get <InventoryServiceInterface>();
     m_GroupsService     = serviceList.Get <GroupsServiceInterface>();
     m_ExperienceService = serviceList.Get <ExperienceServiceInterface>();
     m_ProfileService    = serviceList.Get <ProfileServiceInterface>();
     m_FriendsService    = serviceList.Get <FriendsServiceInterface>();
     m_UserAgentService  = serviceList.Get <UserAgentServiceInterface>();
     m_PresenceService   = serviceList.Get <IPresenceServiceInterface>();
     EconomyService      = serviceList.Get <EconomyServiceInterface>();
     OfflineIMService    = serviceList.Get <OfflineIMServiceInterface>();
     MuteListService     = serviceList.Get <MuteListServiceInterface>();
     FirstName           = firstName;
     LastName            = lastName;
     OnPositionChange   += ChildUpdateOnPositionChange;
     OnAppearanceUpdate += HandleAppearanceUpdate;
 }
        public bool TryGetFriendsService(UGUI agent, out FriendsServiceInterface friendsService)
        {
            friendsService = null;
            if (agent.HomeURI == null)
            {
                return(false);
            }

            string[] handlerType;
            var      homeURI = agent.HomeURI.ToString();

            try
            {
                handlerType = ServicePluginHelo.HeloRequest_HandleType(homeURI);
            }
            catch
            {
                return(false);
            }

            UserAgentServiceInterface userAgentService = null;

            foreach (var service in m_UserAgentPlugins)
            {
                if (handlerType.Contains(service.Name))
                {
                    userAgentService = service.Instantiate(homeURI);
                    break;
                }
            }

            if (userAgentService == null)
            {
                return(false);
            }

            string friendsUri;
            Dictionary <string, string> serviceurls;

            try
            {
                serviceurls = userAgentService.GetServerURLs(agent);
            }
            catch
            {
                return(false);
            }

            if (!serviceurls.TryGetValue("FriendsServerURI", out friendsUri))
            {
                return(false);
            }

            try
            {
                handlerType = ServicePluginHelo.HeloRequest_HandleType(friendsUri);
            }
            catch
            {
                return(false);
            }

            foreach (var service in m_FriendsPlugins)
            {
                if (handlerType.Contains(service.Name))
                {
                    friendsService = service.Instantiate(friendsUri);
                    return(true);
                }
            }

            return(false);
        }