diff options
author | Cinder | 2015-06-05 08:52:25 -0600 |
---|---|---|
committer | Diva Canto | 2015-06-13 07:27:01 -0700 |
commit | 6f71d5c2c65802bd6b0196e825cabbfe8d34fe9e (patch) | |
tree | cbf18dd1caee32b0c2c9571e7f18466de1da87cc /OpenSim/Data | |
parent | Removing parts that escaped from the lab - thanks AliciaRaven (diff) | |
download | opensim-SC_OLD-6f71d5c2c65802bd6b0196e825cabbfe8d34fe9e.zip opensim-SC_OLD-6f71d5c2c65802bd6b0196e825cabbfe8d34fe9e.tar.gz opensim-SC_OLD-6f71d5c2c65802bd6b0196e825cabbfe8d34fe9e.tar.bz2 opensim-SC_OLD-6f71d5c2c65802bd6b0196e825cabbfe8d34fe9e.tar.xz |
Support for Linden AgentPreferences capability and friends (UpdateAgentLanguage and UpdateAgentInformation) and Mantis #7157
Signed-off-by: Diva Canto <diva@metaverseink.com>
Diffstat (limited to 'OpenSim/Data')
-rw-r--r-- | OpenSim/Data/IAgentPreferencesData.cs | 56 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLAgentPreferencesData.cs | 73 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/Resources/AgentPrefs.migrations | 18 |
3 files changed, 147 insertions, 0 deletions
diff --git a/OpenSim/Data/IAgentPreferencesData.cs b/OpenSim/Data/IAgentPreferencesData.cs new file mode 100644 index 0000000..18bf337 --- /dev/null +++ b/OpenSim/Data/IAgentPreferencesData.cs | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * @brief Data store for AgentPreferences capability | ||
3 | * | ||
4 | * Copyright (C) 2015, Cinder Roxley <cinder@sdf.org> | ||
5 | * | ||
6 | * Permission is hereby granted, free of charge, to any person or organization | ||
7 | * obtaining a copy of the software and accompanying documentation covered by | ||
8 | * this license (the "Software") to use, reproduce, display, distribute, | ||
9 | * execute, and transmit the Software, and to prepare derivative works of the | ||
10 | * Software, and to permit third-parties to whom the Software is furnished to | ||
11 | * do so, all subject to the following: | ||
12 | * | ||
13 | * The copyright notices in the Software and this entire statement, including | ||
14 | * the above license grant, this restriction and the following disclaimer, | ||
15 | * must be included in all copies of the Software, in whole or in part, and | ||
16 | * all derivative works of the Software, unless such copies or derivative | ||
17 | * works are solely in the form of machine-executable object code generated by | ||
18 | * a source language processor. | ||
19 | * | ||
20 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
21 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
22 | * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||
23 | * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||
24 | * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||
25 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
26 | * DEALINGS IN THE SOFTWARE. | ||
27 | */ | ||
28 | |||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using OpenMetaverse; | ||
32 | using OpenSim.Framework; | ||
33 | |||
34 | namespace OpenSim.Data | ||
35 | { | ||
36 | public class AgentPreferencesData | ||
37 | { | ||
38 | public UUID PrincipalID = UUID.Zero; | ||
39 | public string AccessPrefs = "M"; | ||
40 | //public int GodLevel; | ||
41 | public double HoverHeight = 0.0; | ||
42 | public string Language = "en-us"; | ||
43 | public bool LanguageIsPublic = true; | ||
44 | // DefaultObjectPermMasks | ||
45 | public int PermEveryone = 0; | ||
46 | public int PermGroup = 0; | ||
47 | public int PermNextOwner = 532480; | ||
48 | } | ||
49 | |||
50 | public interface IAgentPreferencesData | ||
51 | { | ||
52 | AgentPreferencesData GetPrefs(UUID agentID); | ||
53 | void StorePrefs(AgentPreferencesData data); | ||
54 | } | ||
55 | } | ||
56 | |||
diff --git a/OpenSim/Data/MySQL/MySQLAgentPreferencesData.cs b/OpenSim/Data/MySQL/MySQLAgentPreferencesData.cs new file mode 100644 index 0000000..0ea2f64 --- /dev/null +++ b/OpenSim/Data/MySQL/MySQLAgentPreferencesData.cs | |||
@@ -0,0 +1,73 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2015, Cinder Roxley <cinder@sdf.org> | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person or organization | ||
5 | * obtaining a copy of the software and accompanying documentation covered by | ||
6 | * this license (the "Software") to use, reproduce, display, distribute, | ||
7 | * execute, and transmit the Software, and to prepare derivative works of the | ||
8 | * Software, and to permit third-parties to whom the Software is furnished to | ||
9 | * do so, all subject to the following: | ||
10 | * | ||
11 | * The copyright notices in the Software and this entire statement, including | ||
12 | * the above license grant, this restriction and the following disclaimer, | ||
13 | * must be included in all copies of the Software, in whole or in part, and | ||
14 | * all derivative works of the Software, unless such copies or derivative | ||
15 | * works are solely in the form of machine-executable object code generated by | ||
16 | * a source language processor. | ||
17 | * | ||
18 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
19 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
20 | * FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT | ||
21 | * SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE | ||
22 | * FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, | ||
23 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
24 | * DEALINGS IN THE SOFTWARE. | ||
25 | */ | ||
26 | |||
27 | using System; | ||
28 | using System.Collections; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Data; | ||
31 | using OpenMetaverse; | ||
32 | using OpenSim.Framework; | ||
33 | using MySql.Data.MySqlClient; | ||
34 | |||
35 | namespace OpenSim.Data.MySQL | ||
36 | { | ||
37 | public class MySQLAgentPreferencesData : MySQLGenericTableHandler<AgentPreferencesData>, IAgentPreferencesData | ||
38 | { | ||
39 | public MySQLAgentPreferencesData(string connectionString, string realm) | ||
40 | : base(connectionString, realm, "AgentPrefs") | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public AgentPreferencesData GetPrefs(UUID agentID) | ||
45 | { | ||
46 | AgentPreferencesData[] ret = Get("PrincipalID", agentID.ToString()); | ||
47 | |||
48 | if (ret.Length == 0) | ||
49 | return null; | ||
50 | |||
51 | return ret[0]; | ||
52 | } | ||
53 | |||
54 | public void StorePrefs(AgentPreferencesData data) | ||
55 | { | ||
56 | using (MySqlCommand cmd = new MySqlCommand()) | ||
57 | { | ||
58 | cmd.CommandText = String.Format("replace into `{0}` (`PrincipalID`, `AccessPrefs`, `HoverHeight`, `Language`, `LanguageIsPublic`, `PermEveryone`, `PermGroup`, `PermNextOwner`) VALUES (?Principal, ?AP, ?HH, ?Lang, ?LIP, ?PE, ?PG, ?PNO)", m_Realm); | ||
59 | cmd.Parameters.AddWithValue("?Principal", data.PrincipalID.ToString()); | ||
60 | cmd.Parameters.AddWithValue("?AP", data.AccessPrefs); | ||
61 | cmd.Parameters.AddWithValue("?HH", data.HoverHeight); | ||
62 | cmd.Parameters.AddWithValue("?Lang", data.Language); | ||
63 | cmd.Parameters.AddWithValue("?LIP", data.LanguageIsPublic); | ||
64 | cmd.Parameters.AddWithValue("?PE", data.PermEveryone); | ||
65 | cmd.Parameters.AddWithValue("?PG", data.PermGroup); | ||
66 | cmd.Parameters.AddWithValue("?PNO", data.PermNextOwner); | ||
67 | |||
68 | ExecuteNonQuery(cmd); | ||
69 | } | ||
70 | } | ||
71 | } | ||
72 | } | ||
73 | |||
diff --git a/OpenSim/Data/MySQL/Resources/AgentPrefs.migrations b/OpenSim/Data/MySQL/Resources/AgentPrefs.migrations new file mode 100644 index 0000000..e496f72 --- /dev/null +++ b/OpenSim/Data/MySQL/Resources/AgentPrefs.migrations | |||
@@ -0,0 +1,18 @@ | |||
1 | :VERSION 1 # ------------------------- | ||
2 | |||
3 | BEGIN; | ||
4 | |||
5 | CREATE TABLE `AgentPrefs` ( | ||
6 | `PrincipalID` CHAR(36) NOT NULL, | ||
7 | `AccessPrefs` CHAR(2) NOT NULL DEFAULT 'M', | ||
8 | `HoverHeight` DOUBLE(30, 27) NOT NULL DEFAULT 0, | ||
9 | `Language` CHAR(5) NOT NULL DEFAULT 'en-us', | ||
10 | `LanguageIsPublic` BOOLEAN NOT NULL DEFAULT 1, | ||
11 | `PermEveryone` INT(6) NOT NULL DEFAULT 0, | ||
12 | `PermGroup` INT(6) NOT NULL DEFAULT 0, | ||
13 | `PermNextOwner` INT(6) NOT NULL DEFAULT 532480, | ||
14 | UNIQUE KEY `PrincipalID` (`PrincipalID`), | ||
15 | PRIMARY KEY(`PrincipalID`) | ||
16 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
17 | |||
18 | COMMIT; | ||