public void AddCapsHandler(UUID agentId)
        {
            if (m_scene.RegionInfo.EstateSettings.IsBanned(agentId))
            {
                return;
            }

            String capsObjectPath = GetCapsPath(agentId);

            if (m_capsHandlers.ContainsKey(agentId))
            {
                Caps oldCaps = m_capsHandlers[agentId];

                m_log.DebugFormat(
                    "[CAPS]: Reregistering caps for agent {0}.  Old caps path {1}, new caps path {2}. ",
                    agentId, oldCaps.CapsObjectPath, capsObjectPath);
                // This should not happen. The caller code is confused. We need to fix that.
                // CAPs can never be reregistered, or the client will be confused.
                // Hence this return here.
                //return;
            }

            Caps caps
                = new Caps(
                      m_scene.AssetService, m_scene.CommsManager.HttpServer, m_scene.RegionInfo.ExternalHostName,
                      m_scene.CommsManager.HttpServer.Port,
                      capsObjectPath, agentId, m_scene.DumpAssetsToFile, m_scene.RegionInfo.RegionName);

            caps.RegisterHandlers();

            m_scene.EventManager.TriggerOnRegisterCaps(agentId, caps);

            caps.AddNewInventoryItem           = m_scene.AddUploadedInventoryItem;
            caps.ItemUpdatedCall               = m_scene.CapsUpdateInventoryItemAsset;
            caps.TaskScriptUpdatedCall         = m_scene.CapsUpdateTaskInventoryScriptAsset;
            caps.CAPSFetchInventoryDescendents = m_scene.HandleFetchInventoryDescendentsCAPS;
            caps.GetClient = m_scene.SceneContents.GetControllingClient;

            m_capsHandlers[agentId] = caps;
        }
Esempio n. 2
0
        public void AddCapsHandler(UUID agentId)
        {
            if (m_scene.RegionInfo.EstateSettings.IsBanned(agentId))
                return;

            String capsObjectPath = GetCapsPath(agentId);

            if (m_capsHandlers.ContainsKey(agentId))
            {
                Caps oldCaps = m_capsHandlers[agentId];
                
                m_log.DebugFormat(
                    "[CAPS]: Reregistering caps for agent {0}.  Old caps path {1}, new caps path {2}. ", 
                    agentId, oldCaps.CapsObjectPath, capsObjectPath);
                // This should not happen. The caller code is confused. We need to fix that.
                // CAPs can never be reregistered, or the client will be confused.
                // Hence this return here.
                //return;
            }

            Caps caps
                = new Caps(
                    m_scene.AssetService, MainServer.Instance, m_scene.RegionInfo.ExternalHostName,
                    MainServer.Instance.Port,
                    capsObjectPath, agentId, m_scene.DumpAssetsToFile, m_scene.RegionInfo.RegionName);
            
            caps.RegisterHandlers();

            m_scene.EventManager.TriggerOnRegisterCaps(agentId, caps);

            caps.AddNewInventoryItem = m_scene.AddUploadedInventoryItem;
            caps.ItemUpdatedCall = m_scene.CapsUpdateInventoryItemAsset;
            caps.TaskScriptUpdatedCall = m_scene.CapsUpdateTaskInventoryScriptAsset;
            caps.CAPSFetchInventoryDescendents = m_scene.HandleFetchInventoryDescendentsCAPS;
            caps.GetClient = m_scene.SceneContents.GetControllingClient;
            
            m_capsHandlers[agentId] = caps;
        }