示例#1
0
        void OnClientClosed(UUID clientID, Scene scene)
        {
            foreach (Scene s in m_Scenes)
            {
                if (s.TryGetScenePresence(clientID, out ScenePresence sp) && !sp.IsChildAgent && sp.ControllingClient != null && sp.ControllingClient.IsActive)
                {
                    //m_log.DebugFormat("[HG INVENTORY CACHE]: OnClientClosed in {0}, but user {1} still in sim. Keeping inventoryURL in cache",
                    //        scene.RegionInfo.RegionName, clientID);
                    return;
                }
            }

            m_InventoryURLs.TryRemove(clientID, out string dummy);
            m_Cache.RemoveAll(clientID);
        }
示例#2
0
        void OnClientClosed(UUID clientID, Scene scene)
        {
            ScenePresence sp = null;

            foreach (Scene s in m_Scenes)
            {
                s.TryGetScenePresence(clientID, out sp);
                if ((sp != null) && !sp.IsChildAgent && (s != scene))
                {
                    m_log.DebugFormat("[INVENTORY CACHE]: OnClientClosed in {0}, but user {1} still in sim. Keeping inventoryURL in cache",
                                      scene.RegionInfo.RegionName, clientID);
                    return;
                }
            }

            if (m_InventoryURLs.ContainsKey(clientID)) // if it's in cache
            {
                DropInventoryServiceURL(clientID);
            }

            m_Cache.RemoveAll(clientID);
        }