OpenSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
IAgentPreferencesService.cs
Go to the documentation of this file.
1 /*
2  * Copyright (c) Contributors, http://opensimulator.org/
3  * See CONTRIBUTORS.TXT for a full list of copyright holders.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of the OpenSimulator Project nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 using System;
29 using System.Collections.Generic;
30 using OpenMetaverse;
31 
32 namespace OpenSim.Services.Interfaces
33 {
34  public class AgentPrefs
35  {
36  public AgentPrefs(UUID principalID)
37  {
38  PrincipalID = principalID;
39  }
40 
41  public AgentPrefs(Dictionary<string, string> kvp)
42  {
43  if (kvp.ContainsKey("PrincipalID"))
44  UUID.TryParse(kvp["PrincipalID"], out PrincipalID);
45  if (kvp.ContainsKey("AccessPrefs"))
46  AccessPrefs = kvp["AccessPrefs"];
47  if (kvp.ContainsKey("HoverHeight"))
48  HoverHeight = double.Parse(kvp["HoverHeight"]);
49  if (kvp.ContainsKey("Language"))
50  Language = kvp["Language"];
51  if (kvp.ContainsKey("LanguageIsPublic"))
52  LanguageIsPublic = bool.Parse(kvp["LanguageIsPublic"]);
53  if (kvp.ContainsKey("PermEveryone"))
54  PermEveryone = int.Parse(kvp["PermEveryone"]);
55  if (kvp.ContainsKey("PermGroup"))
56  PermGroup = int.Parse(kvp["PermGroup"]);
57  if (kvp.ContainsKey("PermNextOwner"))
58  PermNextOwner = int.Parse(kvp["PermNextOwner"]);
59  }
60 
61  public AgentPrefs(Dictionary<string, object> kvp)
62  {
63  if (kvp.ContainsKey("PrincipalID"))
64  UUID.TryParse(kvp["PrincipalID"].ToString(), out PrincipalID);
65  if (kvp.ContainsKey("AccessPrefs"))
66  AccessPrefs = kvp["AccessPrefs"].ToString();
67  if (kvp.ContainsKey("HoverHeight"))
68  HoverHeight = double.Parse(kvp["HoverHeight"].ToString());
69  if (kvp.ContainsKey("Language"))
70  Language = kvp["Language"].ToString();
71  if (kvp.ContainsKey("LanguageIsPublic"))
72  LanguageIsPublic = bool.Parse(kvp["LanguageIsPublic"].ToString());
73  if (kvp.ContainsKey("PermEveryone"))
74  PermEveryone = int.Parse(kvp["PermEveryone"].ToString());
75  if (kvp.ContainsKey("PermGroup"))
76  PermGroup = int.Parse(kvp["PermGroup"].ToString());
77  if (kvp.ContainsKey("PermNextOwner"))
78  PermNextOwner = int.Parse(kvp["PermNextOwner"].ToString());
79  }
80 
81  public Dictionary<string, object> ToKeyValuePairs()
82  {
83  Dictionary<string, object> result = new Dictionary<string, object>();
84  result["PrincipalID"] = PrincipalID.ToString();
85  result["AccessPrefs"] = AccessPrefs.ToString();
86  result["HoverHeight"] = HoverHeight.ToString();
87  result["Language"] = Language.ToString();
88  result["LanguageIsPublic"] = LanguageIsPublic.ToString();
89  result["PermEveryone"] = PermEveryone.ToString();
90  result["PermGroup"] = PermGroup.ToString();
91  result["PermNextOwner"] = PermNextOwner.ToString();
92  return result;
93  }
94 
95  public UUID PrincipalID = UUID.Zero;
96  public string AccessPrefs = "M";
97  //public int GodLevel; // *TODO: Implement GodLevel (Unused by the viewer, afaict - 6/11/2015)
98  public double HoverHeight = 0.0;
99  public string Language = "en-us";
100  public bool LanguageIsPublic = true;
101  // DefaultObjectPermMasks
102  public int PermEveryone = 0;
103  public int PermGroup = 0;
104  public int PermNextOwner = 532480;
105  }
106 
107  public interface IAgentPreferencesService
108  {
109  AgentPrefs GetAgentPreferences(UUID principalID);
110  bool StoreAgentPreferences(AgentPrefs data);
111 
112  string GetLang(UUID principalID);
113  }
114 }
115 
AgentPrefs(Dictionary< string, object > kvp)
AgentPrefs(Dictionary< string, string > kvp)
Dictionary< string, object > ToKeyValuePairs()