Example #1
0
        public AgentPrefs GetAgentPreferences(UUID principalID)
        {
            AgentPreferencesData d     = m_Database.GetPrefs(principalID);
            AgentPrefs           prefs = (d == null) ? null : new AgentPrefs(d.Data);

            return(prefs);
        }
Example #2
0
        private void StoreAgentPrefs(UUID agent, AgentPreferencesData data)
        {
            ScenePresence sp = m_scene.GetScenePresence(agent);

            if (sp != null)
            {
                sp.AgentPrefs = data;
            }
        }
Example #3
0
        public string UpdateAgentPreferences(string request, string path, string param, UUID agent)
        {
            OSDMap resp = new OSDMap();

            // The viewer doesn't do anything with the return value. It never fetches these, so there's no need to persist them.
            // We'll store them for the session with the SP so that the values are available, e.g. to llGetAgentLanguage

            m_log.DebugFormat("[AgentPrefs]: UpdateAgentPreferences for {0}", agent.ToString());
            OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);

            AgentPreferencesData data = FetchAgentPrefs(agent);

            if (req.ContainsKey("access_prefs"))
            {
                OSDMap accessPrefs = (OSDMap)req["access_prefs"];  // We could check with ContainsKey...
                data.AccessPrefs = accessPrefs["max"].AsString();
            }
            if (req.ContainsKey("default_object_perm_masks"))
            {
                OSDMap permsMap = (OSDMap)req["default_object_perm_masks"];
                data.PermEveryone  = permsMap["Everyone"].AsUInteger();
                data.PermGroup     = permsMap["Group"].AsUInteger();
                data.PermNextOwner = permsMap["NextOwner"].AsUInteger();
            }
            if (req.ContainsKey("hover_height"))
            {
                data.HoverHeight = (float)req["hover_height"].AsReal();
            }
            if (req.ContainsKey("language"))
            {
                data.Language = req["language"].AsString();
            }
            if (req.ContainsKey("language_is_public"))
            {
                data.LanguageIsPublic = req["language_is_public"].AsBoolean();
            }

            StoreAgentPrefs(agent, data);

            OSDMap respAccessPrefs = new OSDMap();

            respAccessPrefs["max"] = data.AccessPrefs;
            resp["access_prefs"]   = respAccessPrefs;
            OSDMap respDefaultPerms = new OSDMap();

            respDefaultPerms["Everyone"]      = data.PermEveryone;
            respDefaultPerms["Group"]         = data.PermGroup;
            respDefaultPerms["NextOwner"]     = data.PermNextOwner;
            resp["default_object_perm_masks"] = respDefaultPerms;
            resp["god_level"]          = 0; // *TODO: Add this
            resp["hover_height"]       = data.HoverHeight;
            resp["language"]           = data.Language;
            resp["language_is_public"] = data.LanguageIsPublic;

            return(OSDParser.SerializeLLSDXmlString(resp));
        }
Example #4
0
        public bool StoreAgentPreferences(AgentPrefs data)
        {
            AgentPreferencesData d = new AgentPreferencesData();

            d.Data = new Dictionary <string, string>();
            d.Data["PrincipalID"]      = data.PrincipalID.ToString();
            d.Data["AccessPrefs"]      = data.AccessPrefs;
            d.Data["HoverHeight"]      = data.HoverHeight.ToString();
            d.Data["Language"]         = data.Language;
            d.Data["LanguageIsPublic"] = (data.LanguageIsPublic ? "1" : "0");
            d.Data["PermEveryone"]     = data.PermEveryone.ToString();
            d.Data["PermGroup"]        = data.PermGroup.ToString();
            d.Data["PermNextOwner"]    = data.PermNextOwner.ToString();
            return(m_Database.Store(d));
        }
Example #5
0
        internal static PackedAgentPrefs FromAgentPrefs(AgentPreferencesData agentPreferences)
        {
            PackedAgentPrefs prefs = new PackedAgentPrefs
            {
                AccessPrefs      = agentPreferences.AccessPrefs,
                Hover            = agentPreferences.HoverHeight,
                Language         = agentPreferences.Language,
                LanguageIsPublic = agentPreferences.LanguageIsPublic,
                // DefaultObjectPermMasks
                PermEveryone  = agentPreferences.PermEveryone,
                PermGroup     = agentPreferences.PermGroup,
                PermNextOwner = agentPreferences.PermNextOwner
            };

            return(prefs);
        }
Example #6
0
        internal AgentPreferencesData ToAgentPrefs(OpenMetaverse.UUID owner)
        {
            AgentPreferencesData agentPreferences =
                new AgentPreferencesData
            {
                AccessPrefs      = this.AccessPrefs,
                HoverHeight      = this.Hover,
                Language         = this.Language,
                LanguageIsPublic = this.LanguageIsPublic,
                // DefaultObjectPermMasks
                PermEveryone  = this.PermEveryone,
                PermGroup     = this.PermGroup,
                PermNextOwner = this.PermNextOwner
            };

            return(agentPreferences);
        }
Example #7
0
        private AgentPreferencesData FetchAgentPrefs(UUID agent)
        {
            AgentPreferencesData data = null;

            if (agent != UUID.Zero)
            {
                ScenePresence sp = m_scene.GetScenePresence(agent);
                if (sp != null)
                {
                    data = new AgentPreferencesData(sp.AgentPrefs);
                }
            }

            if (data == null)
            {
                data = new AgentPreferencesData();
            }

            return(data);
        }