diff options
Diffstat (limited to 'OpenSim/Data/NHibernate')
16 files changed, 714 insertions, 118 deletions
diff --git a/OpenSim/Data/NHibernate/ColorUserType.cs b/OpenSim/Data/NHibernate/ColorUserType.cs new file mode 100644 index 0000000..4676585 --- /dev/null +++ b/OpenSim/Data/NHibernate/ColorUserType.cs | |||
@@ -0,0 +1,106 @@ | |||
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 OpenSim 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.Data; | ||
30 | using OpenMetaverse; | ||
31 | using OpenSim.Framework; | ||
32 | using NHibernate; | ||
33 | using NHibernate.SqlTypes; | ||
34 | using NHibernate.UserTypes; | ||
35 | using System.Drawing; | ||
36 | |||
37 | namespace OpenSim.Data.NHibernate | ||
38 | { | ||
39 | [Serializable] | ||
40 | public class ColorUserType : IUserType | ||
41 | { | ||
42 | public object Assemble(object cached, object owner) | ||
43 | { | ||
44 | return cached; | ||
45 | } | ||
46 | |||
47 | bool IUserType.Equals(object color1, object color2) | ||
48 | { | ||
49 | return color1.Equals(color2); | ||
50 | } | ||
51 | |||
52 | public object DeepCopy(object color) | ||
53 | { | ||
54 | return color; | ||
55 | } | ||
56 | |||
57 | public object Disassemble(object color) | ||
58 | { | ||
59 | return color; | ||
60 | } | ||
61 | |||
62 | public int GetHashCode(object color) | ||
63 | { | ||
64 | return (color == null) ? 0 : color.GetHashCode(); | ||
65 | } | ||
66 | |||
67 | public bool IsMutable | ||
68 | { | ||
69 | get { return false; } | ||
70 | } | ||
71 | |||
72 | public object NullSafeGet(IDataReader rs, string[] names, object owner) | ||
73 | { | ||
74 | Color color=Color.Empty; | ||
75 | |||
76 | int ord = rs.GetOrdinal(names[0]); | ||
77 | if (!rs.IsDBNull(ord)) | ||
78 | { | ||
79 | color = Color.FromArgb(rs.GetInt32(ord)); | ||
80 | } | ||
81 | |||
82 | return color; | ||
83 | } | ||
84 | |||
85 | public void NullSafeSet(IDbCommand cmd, object obj, int index) | ||
86 | { | ||
87 | Color color = (Color)obj; | ||
88 | ((IDataParameter)cmd.Parameters[index]).Value = color.ToArgb(); | ||
89 | } | ||
90 | |||
91 | public object Replace(object original, object target, object owner) | ||
92 | { | ||
93 | return original; | ||
94 | } | ||
95 | |||
96 | public Type ReturnedType | ||
97 | { | ||
98 | get { return typeof(Color); } | ||
99 | } | ||
100 | |||
101 | public SqlType[] SqlTypes | ||
102 | { | ||
103 | get { return new SqlType [] { NHibernateUtil.Int32.SqlType }; } | ||
104 | } | ||
105 | } | ||
106 | } | ||
diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs index dc98d11..e648396 100644 --- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs +++ b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs | |||
@@ -344,7 +344,14 @@ namespace OpenSim.Data.NHibernate | |||
344 | // See IInventoryDataPlugin | 344 | // See IInventoryDataPlugin |
345 | public List<InventoryFolderBase> getFolderHierarchy(UUID parentID) | 345 | public List<InventoryFolderBase> getFolderHierarchy(UUID parentID) |
346 | { | 346 | { |
347 | if (parentID == UUID.Zero) | ||
348 | { | ||
349 | // Zero UUID is not a real parent folder. | ||
350 | return new List<InventoryFolderBase>(); | ||
351 | } | ||
352 | |||
347 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); | 353 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); |
354 | |||
348 | getInventoryFolders(ref folders, parentID); | 355 | getInventoryFolders(ref folders, parentID); |
349 | 356 | ||
350 | for (int i = 0; i < folders.Count; i++) | 357 | for (int i = 0; i < folders.Count; i++) |
diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs index 871013b..b8b1863 100644 --- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs +++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs | |||
@@ -67,11 +67,31 @@ namespace OpenSim.Data.NHibernate | |||
67 | 67 | ||
68 | public void StoreRegionSettings(RegionSettings rs) | 68 | public void StoreRegionSettings(RegionSettings rs) |
69 | { | 69 | { |
70 | RegionSettings oldRegionSettings = (RegionSettings)manager.Load(typeof(RegionSettings), rs.RegionUUID); | ||
71 | if (oldRegionSettings != null) | ||
72 | { | ||
73 | manager.Update(rs); | ||
74 | } | ||
75 | else | ||
76 | { | ||
77 | manager.Save(rs); | ||
78 | } | ||
70 | } | 79 | } |
71 | 80 | ||
72 | public RegionSettings LoadRegionSettings(UUID regionUUID) | 81 | public RegionSettings LoadRegionSettings(UUID regionUUID) |
73 | { | 82 | { |
74 | return null; | 83 | RegionSettings regionSettings = (RegionSettings) manager.Load(typeof(RegionSettings), regionUUID); |
84 | |||
85 | if (regionSettings == null) | ||
86 | { | ||
87 | regionSettings = new RegionSettings(); | ||
88 | regionSettings.RegionUUID = regionUUID; | ||
89 | manager.Save(regionSettings); | ||
90 | } | ||
91 | |||
92 | regionSettings.OnSave += StoreRegionSettings; | ||
93 | |||
94 | return regionSettings; | ||
75 | } | 95 | } |
76 | 96 | ||
77 | // This looks inefficient, but it turns out that it isn't | 97 | // This looks inefficient, but it turns out that it isn't |
@@ -84,7 +104,7 @@ namespace OpenSim.Data.NHibernate | |||
84 | if (old != null) | 104 | if (old != null) |
85 | { | 105 | { |
86 | m_log.InfoFormat("[NHIBERNATE] updating object {0}", p.UUID); | 106 | m_log.InfoFormat("[NHIBERNATE] updating object {0}", p.UUID); |
87 | manager.Update(old); | 107 | manager.Update(p); |
88 | } | 108 | } |
89 | else | 109 | else |
90 | { | 110 | { |
@@ -108,7 +128,7 @@ namespace OpenSim.Data.NHibernate | |||
108 | if (old != null) | 128 | if (old != null) |
109 | { | 129 | { |
110 | m_log.InfoFormat("[NHIBERNATE] updating terrain {0}", t.RegionID); | 130 | m_log.InfoFormat("[NHIBERNATE] updating terrain {0}", t.RegionID); |
111 | manager.Update(old); | 131 | manager.Update(t); |
112 | } | 132 | } |
113 | else | 133 | else |
114 | { | 134 | { |
@@ -131,6 +151,14 @@ namespace OpenSim.Data.NHibernate | |||
131 | /// <param name="regionUUID">the region UUID</param> | 151 | /// <param name="regionUUID">the region UUID</param> |
132 | public void StoreObject(SceneObjectGroup obj, UUID regionUUID) | 152 | public void StoreObject(SceneObjectGroup obj, UUID regionUUID) |
133 | { | 153 | { |
154 | uint flags = obj.RootPart.GetEffectiveObjectFlags(); | ||
155 | |||
156 | // Eligibility check | ||
157 | if ((flags & (uint)PrimFlags.Temporary) != 0) | ||
158 | return; | ||
159 | if ((flags & (uint)PrimFlags.TemporaryOnRez) != 0) | ||
160 | return; | ||
161 | |||
134 | try | 162 | try |
135 | { | 163 | { |
136 | foreach (SceneObjectPart part in obj.Children.Values) | 164 | foreach (SceneObjectPart part in obj.Children.Values) |
@@ -199,7 +227,8 @@ namespace OpenSim.Data.NHibernate | |||
199 | 227 | ||
200 | ICriteria criteria = manager.GetSession().CreateCriteria(typeof(SceneObjectPart)); | 228 | ICriteria criteria = manager.GetSession().CreateCriteria(typeof(SceneObjectPart)); |
201 | criteria.Add(Expression.Eq("RegionID", regionUUID)); | 229 | criteria.Add(Expression.Eq("RegionID", regionUUID)); |
202 | criteria.AddOrder( Order.Asc("ParentID") ); | 230 | criteria.AddOrder(Order.Asc("ParentID")); |
231 | criteria.AddOrder(Order.Asc("LinkNum")); | ||
203 | foreach (SceneObjectPart p in criteria.List()) | 232 | foreach (SceneObjectPart p in criteria.List()) |
204 | { | 233 | { |
205 | // root part | 234 | // root part |
diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs index e0f6db7..6076f90 100644 --- a/OpenSim/Data/NHibernate/NHibernateUserData.cs +++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs | |||
@@ -97,11 +97,18 @@ namespace OpenSim.Data.NHibernate | |||
97 | 97 | ||
98 | override public void AddNewUserProfile(UserProfileData profile) | 98 | override public void AddNewUserProfile(UserProfileData profile) |
99 | { | 99 | { |
100 | if (profile.ID == UUID.Zero) | ||
101 | { | ||
102 | m_log.ErrorFormat("[NHIBERNATE] Attempted to add User {0} {1} with zero UUID, throwintg exception as this is programming error ", profile.FirstName, profile.SurName); | ||
103 | return; | ||
104 | } | ||
105 | |||
100 | if (!ExistsUser(profile.ID)) | 106 | if (!ExistsUser(profile.ID)) |
101 | { | 107 | { |
102 | m_log.InfoFormat("[NHIBERNATE] AddNewUserProfile {0}", profile.ID); | 108 | m_log.InfoFormat("[NHIBERNATE] AddNewUserProfile {0}", profile.ID); |
103 | manager.Save(profile); | 109 | manager.Save(profile); |
104 | SetAgentData(profile.ID, profile.CurrentAgent); | 110 | // Agent should not be saved according to BasicUserTest.T015_UserPersistency() |
111 | // SetAgentData(profile.ID, profile.CurrentAgent); | ||
105 | 112 | ||
106 | } | 113 | } |
107 | else | 114 | else |
@@ -131,7 +138,8 @@ namespace OpenSim.Data.NHibernate | |||
131 | if (ExistsUser(profile.ID)) | 138 | if (ExistsUser(profile.ID)) |
132 | { | 139 | { |
133 | manager.Update(profile); | 140 | manager.Update(profile); |
134 | SetAgentData(profile.ID, profile.CurrentAgent); | 141 | // Agent should not be saved according to BasicUserTest.T015_UserPersistency() |
142 | // SetAgentData(profile.ID, profile.CurrentAgent); | ||
135 | return true; | 143 | return true; |
136 | } | 144 | } |
137 | else | 145 | else |
@@ -144,6 +152,19 @@ namespace OpenSim.Data.NHibernate | |||
144 | 152 | ||
145 | override public void AddNewUserAgent(UserAgentData agent) | 153 | override public void AddNewUserAgent(UserAgentData agent) |
146 | { | 154 | { |
155 | if (agent.ProfileID == UUID.Zero) | ||
156 | { | ||
157 | m_log.ErrorFormat("[NHIBERNATE] Attempted to add new user agent with zero user id. Agent session id: {0}", agent.SessionID); | ||
158 | return; | ||
159 | } | ||
160 | |||
161 | if (agent.SessionID == UUID.Zero) | ||
162 | { | ||
163 | m_log.ErrorFormat("[NHIBERNATE] Attempted to add new user agent with zero session id. User profile id: {0}", agent.SessionID); | ||
164 | return; | ||
165 | } | ||
166 | |||
167 | |||
147 | UserAgentData old = (UserAgentData)manager.Load(typeof(UserAgentData), agent.ProfileID); | 168 | UserAgentData old = (UserAgentData)manager.Load(typeof(UserAgentData), agent.ProfileID); |
148 | if (old != null) | 169 | if (old != null) |
149 | { | 170 | { |
@@ -214,12 +235,163 @@ namespace OpenSim.Data.NHibernate | |||
214 | } | 235 | } |
215 | 236 | ||
216 | // TODO: actually implement these | 237 | // TODO: actually implement these |
217 | public override void StoreWebLoginKey(UUID agentID, UUID webLoginKey) { return; } | 238 | public override void StoreWebLoginKey(UUID agentID, UUID webLoginKey) |
218 | public override void AddNewUserFriend(UUID friendlistowner, UUID friend, uint perms) { return; } | 239 | { |
219 | public override void RemoveUserFriend(UUID friendlistowner, UUID friend) { return; } | 240 | UserProfileData user=GetUserByUUID(agentID); |
220 | public override void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms) { return; } | 241 | user.WebLoginKey = webLoginKey; |
221 | public override List<FriendListItem> GetUserFriendList(UUID friendlistowner) { return new List<FriendListItem>(); } | 242 | UpdateUserProfile(user); |
222 | public override Dictionary<UUID, FriendRegionInfo> GetFriendRegionInfos (List<UUID> uuids) { return new Dictionary<UUID, FriendRegionInfo>(); } | 243 | return; |
244 | } | ||
245 | |||
246 | public override void AddNewUserFriend(UUID ownerId, UUID friendId, uint perms) | ||
247 | { | ||
248 | if (!FriendRelationExists(ownerId,friendId)) | ||
249 | { | ||
250 | manager.Save(new UserFriend(UUID.Random(), ownerId, friendId, perms)); | ||
251 | } | ||
252 | if (!FriendRelationExists(friendId, ownerId)) | ||
253 | { | ||
254 | manager.Save(new UserFriend(UUID.Random(), friendId, ownerId, perms)); | ||
255 | } | ||
256 | return; | ||
257 | } | ||
258 | |||
259 | private bool FriendRelationExists(UUID ownerId, UUID friendId) | ||
260 | { | ||
261 | using (ISession session = manager.GetSession()) | ||
262 | { | ||
263 | ICriteria criteria = session.CreateCriteria(typeof(UserFriend)); | ||
264 | criteria.Add(Expression.Eq("OwnerID", ownerId)); | ||
265 | criteria.Add(Expression.Eq("FriendID", friendId)); | ||
266 | return criteria.List().Count > 0; | ||
267 | } | ||
268 | } | ||
269 | |||
270 | public override void RemoveUserFriend(UUID ownerId, UUID friendId) | ||
271 | { | ||
272 | using (ISession session = manager.GetSession()) | ||
273 | { | ||
274 | using (ITransaction transaction = session.BeginTransaction()) | ||
275 | { | ||
276 | |||
277 | { | ||
278 | ICriteria criteria = session.CreateCriteria(typeof(UserFriend)); | ||
279 | criteria.Add(Expression.Eq("OwnerID", ownerId)); | ||
280 | criteria.Add(Expression.Eq("FriendID", friendId)); | ||
281 | |||
282 | foreach (UserFriend userFriend in criteria.List()) | ||
283 | { | ||
284 | session.Delete(userFriend); | ||
285 | } | ||
286 | } | ||
287 | |||
288 | { | ||
289 | ICriteria criteria = session.CreateCriteria(typeof(UserFriend)); | ||
290 | criteria.Add(Expression.Eq("OwnerID", friendId)); | ||
291 | criteria.Add(Expression.Eq("FriendID", ownerId)); | ||
292 | |||
293 | foreach (UserFriend userFriend in criteria.List()) | ||
294 | { | ||
295 | session.Delete(userFriend); | ||
296 | } | ||
297 | } | ||
298 | |||
299 | transaction.Commit(); | ||
300 | } | ||
301 | } | ||
302 | return; | ||
303 | } | ||
304 | |||
305 | |||
306 | public override void UpdateUserFriendPerms(UUID ownerId, UUID friendId, uint perms) | ||
307 | { | ||
308 | using (ISession session = manager.GetSession()) | ||
309 | { | ||
310 | using (ITransaction transaction = session.BeginTransaction()) | ||
311 | { | ||
312 | { | ||
313 | ICriteria criteria = session.CreateCriteria(typeof(UserFriend)); | ||
314 | criteria.Add(Expression.Eq("OwnerID", ownerId)); | ||
315 | criteria.Add(Expression.Eq("FriendID", friendId)); | ||
316 | |||
317 | foreach (UserFriend userFriend in criteria.List()) | ||
318 | { | ||
319 | userFriend.FriendPermissions = perms; | ||
320 | session.Update(userFriend); | ||
321 | } | ||
322 | } | ||
323 | transaction.Commit(); | ||
324 | } | ||
325 | } | ||
326 | return; | ||
327 | } | ||
328 | |||
329 | public override List<FriendListItem> GetUserFriendList(UUID ownerId) | ||
330 | { | ||
331 | List<FriendListItem> friendList=new List<FriendListItem>(); | ||
332 | Dictionary<UUID, FriendListItem> friendListItemDictionary = new Dictionary<UUID, FriendListItem>(); | ||
333 | |||
334 | using (ISession session = manager.GetSession()) | ||
335 | { | ||
336 | ICriteria criteria = session.CreateCriteria(typeof(UserFriend)); | ||
337 | criteria.Add(Expression.Or( | ||
338 | Expression.Eq("OwnerID", ownerId), | ||
339 | Expression.Eq("FriendID", ownerId) | ||
340 | )); | ||
341 | |||
342 | foreach (UserFriend userFriend in criteria.List()) | ||
343 | { | ||
344 | if (userFriend.OwnerID == ownerId) | ||
345 | { | ||
346 | FriendListItem friendListItem = new FriendListItem(); | ||
347 | friendListItem.FriendListOwner = userFriend.OwnerID; | ||
348 | friendListItem.Friend = userFriend.FriendID; | ||
349 | friendListItem.FriendPerms = userFriend.FriendPermissions; | ||
350 | friendListItemDictionary.Add(userFriend.FriendID, friendListItem); | ||
351 | friendList.Add(friendListItem); | ||
352 | } | ||
353 | } | ||
354 | |||
355 | // Reading permissions to other direction | ||
356 | foreach (UserFriend userFriend in criteria.List()) | ||
357 | { | ||
358 | if (userFriend.FriendID == ownerId) | ||
359 | { | ||
360 | //Ignore if there is no reverse relation existing. | ||
361 | //if (friendListItemDictionary.ContainsKey(userFriend.OwnerID)) | ||
362 | { | ||
363 | FriendListItem friendListItem = friendListItemDictionary[userFriend.OwnerID]; | ||
364 | friendListItem.FriendListOwnerPerms = userFriend.FriendPermissions; | ||
365 | } | ||
366 | } | ||
367 | } | ||
368 | |||
369 | } | ||
370 | |||
371 | return friendList; | ||
372 | } | ||
373 | |||
374 | |||
375 | public override Dictionary<UUID, FriendRegionInfo> GetFriendRegionInfos (List<UUID> friendsIds) | ||
376 | { | ||
377 | Dictionary<UUID, FriendRegionInfo> friendRegionInfos=new Dictionary<UUID, FriendRegionInfo>(); | ||
378 | |||
379 | foreach(UUID friendId in friendsIds) | ||
380 | { | ||
381 | UserAgentData agent=GetAgentByUUID(friendId); | ||
382 | if (agent != null) | ||
383 | { | ||
384 | FriendRegionInfo fri = new FriendRegionInfo(); | ||
385 | fri.isOnline = agent.AgentOnline; | ||
386 | fri.regionHandle = agent.Handle; | ||
387 | |||
388 | friendRegionInfos[friendId] = fri; | ||
389 | } | ||
390 | } | ||
391 | |||
392 | return friendRegionInfos; | ||
393 | } | ||
394 | |||
223 | public override bool MoneyTransferRequest(UUID from, UUID to, uint amount) { return true; } | 395 | public override bool MoneyTransferRequest(UUID from, UUID to, uint amount) { return true; } |
224 | public override bool InventoryTransferRequest(UUID from, UUID to, UUID inventory) { return true; } | 396 | public override bool InventoryTransferRequest(UUID from, UUID to, UUID inventory) { return true; } |
225 | 397 | ||
diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql index 99a5227..158ebb4 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_RegionStore.sql | |||
@@ -1,8 +1,15 @@ | |||
1 | CREATE TABLE `Prims` ( | 1 | CREATE TABLE `Prims` ( |
2 | `UUID` char(36) NOT NULL default '', | ||
3 | `RegionID` char(36) default NULL, | ||
4 | `GroupID` char(36) default NULL, | ||
2 | `ParentID` int(11) default NULL, | 5 | `ParentID` int(11) default NULL, |
6 | `ParentUUID` char(36) default NULL, | ||
7 | `OwnerID` char(36) default NULL, | ||
8 | `LastOwnerID` char(36) default NULL, | ||
9 | `CreatorID` char(36) default NULL, | ||
3 | `CreationDate` int(11) default NULL, | 10 | `CreationDate` int(11) default NULL, |
11 | `LinkNum` int(11) default NULL, | ||
4 | `Name` varchar(255) default NULL, | 12 | `Name` varchar(255) default NULL, |
5 | `ParentUUID` char(36) default NULL, | ||
6 | `Text` varchar(255) default NULL, | 13 | `Text` varchar(255) default NULL, |
7 | `Description` varchar(255) default NULL, | 14 | `Description` varchar(255) default NULL, |
8 | `SitName` varchar(255) default NULL, | 15 | `SitName` varchar(255) default NULL, |
@@ -13,43 +20,43 @@ CREATE TABLE `Prims` ( | |||
13 | `GroupMask` int(11) default NULL, | 20 | `GroupMask` int(11) default NULL, |
14 | `EveryoneMask` int(11) default NULL, | 21 | `EveryoneMask` int(11) default NULL, |
15 | `BaseMask` int(11) default NULL, | 22 | `BaseMask` int(11) default NULL, |
16 | `PositionX` float default NULL, | 23 | `Material` int(1) default NULL, |
17 | `PositionY` float default NULL, | 24 | `ScriptAccessPin` int(11) default NULL, |
18 | `PositionZ` float default NULL, | 25 | `TextureAnimation` blob, |
19 | `GroupPositionX` float default NULL, | 26 | `ParticleSystem` blob, |
20 | `GroupPositionY` float default NULL, | 27 | `ClickAction` int(1) default NULL, |
21 | `GroupPositionZ` float default NULL, | 28 | `Color` int(11) default NULL, |
22 | `VelocityX` float default NULL, | 29 | `PositionX` double default NULL, |
23 | `VelocityY` float default NULL, | 30 | `PositionY` double default NULL, |
24 | `VelocityZ` float default NULL, | 31 | `PositionZ` double default NULL, |
25 | `AngularVelocityX` float default NULL, | 32 | `GroupPositionX` double default NULL, |
26 | `AngularVelocityY` float default NULL, | 33 | `GroupPositionY` double default NULL, |
27 | `AngularVelocityZ` float default NULL, | 34 | `GroupPositionZ` double default NULL, |
28 | `AccelerationX` float default NULL, | 35 | `VelocityX` double default NULL, |
29 | `AccelerationY` float default NULL, | 36 | `VelocityY` double default NULL, |
30 | `AccelerationZ` float default NULL, | 37 | `VelocityZ` double default NULL, |
31 | `RotationX` float default NULL, | 38 | `AngularVelocityX` double default NULL, |
32 | `RotationY` float default NULL, | 39 | `AngularVelocityY` double default NULL, |
33 | `RotationZ` float default NULL, | 40 | `AngularVelocityZ` double default NULL, |
34 | `RotationW` float default NULL, | 41 | `AccelerationX` double default NULL, |
35 | `SitTargetOffsetX` float default NULL, | 42 | `AccelerationY` double default NULL, |
36 | `SitTargetOffsetY` float default NULL, | 43 | `AccelerationZ` double default NULL, |
37 | `SitTargetOffsetZ` float default NULL, | 44 | `RotationX` double default NULL, |
38 | `SitTargetOrientW` float default NULL, | 45 | `RotationY` double default NULL, |
39 | `SitTargetOrientX` float default NULL, | 46 | `RotationZ` double default NULL, |
40 | `SitTargetOrientY` float default NULL, | 47 | `RotationW` double default NULL, |
41 | `SitTargetOrientZ` float default NULL, | 48 | `SitTargetOffsetX` double default NULL, |
42 | `UUID` char(36) NOT NULL default '', | 49 | `SitTargetOffsetY` double default NULL, |
43 | `RegionID` char(36) default NULL, | 50 | `SitTargetOffsetZ` double default NULL, |
44 | `CreatorID` char(36) default NULL, | 51 | `SitTargetOrientW` double default NULL, |
45 | `OwnerID` char(36) default NULL, | 52 | `SitTargetOrientX` double default NULL, |
46 | `GroupID` char(36) default NULL, | 53 | `SitTargetOrientY` double default NULL, |
47 | `LastOwnerID` char(36) default NULL, | 54 | `SitTargetOrientZ` double default NULL, |
48 | -- this is the shape | 55 | -- this is the shape |
49 | `Shape` int(11) default NULL, | 56 | `Shape` int(11) default NULL, |
50 | `ScaleX` float default NULL, | 57 | `ScaleX` double default NULL, |
51 | `ScaleY` float default NULL, | 58 | `ScaleY` double default NULL, |
52 | `ScaleZ` float default NULL, | 59 | `ScaleZ` double default NULL, |
53 | `PCode` int(11) default NULL, | 60 | `PCode` int(11) default NULL, |
54 | `PathBegin` int(11) default NULL, | 61 | `PathBegin` int(11) default NULL, |
55 | `PathEnd` int(11) default NULL, | 62 | `PathEnd` int(11) default NULL, |
@@ -77,3 +84,4 @@ CREATE TABLE `Prims` ( | |||
77 | KEY `prims_parentuuid` (`ParentUUID`) | 84 | KEY `prims_parentuuid` (`ParentUUID`) |
78 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 85 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
79 | 86 | ||
87 | |||
diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_UserStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_UserStore.sql index 5db5d29..a66f5b8 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_UserStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/001_UserStore.sql | |||
@@ -1,12 +1,12 @@ | |||
1 | START TRANSACTION; | 1 | START TRANSACTION; |
2 | 2 | ||
3 | CREATE TABLE `UserAgents` ( | 3 | CREATE TABLE `UserAgents` ( |
4 | `ProfileID` varchar(255) NOT NULL, | 4 | `ProfileID` varchar(36) NOT NULL, |
5 | `AgentIP` varchar(24) default NULL, | 5 | `AgentIP` varchar(24) default NULL, |
6 | `AgentPort` int(11) default NULL, | 6 | `AgentPort` int(11) default NULL, |
7 | `AgentOnline` tinyint(1) default NULL, | 7 | `AgentOnline` tinyint(1) default NULL, |
8 | `SessionID` varchar(255) default NULL, | 8 | `SessionID` varchar(36) default NULL, |
9 | `SecureSessionID` varchar(255) default NULL, | 9 | `SecureSessionID` varchar(36) default NULL, |
10 | `InitialRegion` varchar(255) default NULL, | 10 | `InitialRegion` varchar(255) default NULL, |
11 | `Region` varchar(255) default NULL, | 11 | `Region` varchar(255) default NULL, |
12 | `LoginTime` int(11) default NULL, | 12 | `LoginTime` int(11) default NULL, |
@@ -15,16 +15,21 @@ CREATE TABLE `UserAgents` ( | |||
15 | `PositionX` float default NULL, | 15 | `PositionX` float default NULL, |
16 | `PositionY` float default NULL, | 16 | `PositionY` float default NULL, |
17 | `PositionZ` float default NULL, | 17 | `PositionZ` float default NULL, |
18 | `LookAtX` float default NULL, | ||
19 | `LookAtY` float default NULL, | ||
20 | `LookAtZ` float default NULL, | ||
18 | PRIMARY KEY (`ProfileID`) | 21 | PRIMARY KEY (`ProfileID`) |
19 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 22 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
20 | 23 | ||
21 | CREATE TABLE `UserProfiles` ( | 24 | CREATE TABLE `UserProfiles` ( |
22 | `ID` varchar(255) NOT NULL, | 25 | `ID` varchar(36) NOT NULL, |
26 | `WebLoginKey` varchar(36) default NULL, | ||
23 | `FirstName` varchar(32) default NULL, | 27 | `FirstName` varchar(32) default NULL, |
24 | `SurName` varchar(32) default NULL, | 28 | `SurName` varchar(32) default NULL, |
29 | `Email` varchar(250) default NULL, | ||
25 | `PasswordHash` varchar(32) default NULL, | 30 | `PasswordHash` varchar(32) default NULL, |
26 | `PasswordSalt` varchar(32) default NULL, | 31 | `PasswordSalt` varchar(32) default NULL, |
27 | `WebLoginKey` varchar(255) default NULL, | 32 | `HomeRegionID` varchar(36) default NULL, |
28 | `HomeRegionX` int(11) default NULL, | 33 | `HomeRegionX` int(11) default NULL, |
29 | `HomeRegionY` int(11) default NULL, | 34 | `HomeRegionY` int(11) default NULL, |
30 | `HomeLocationX` float default NULL, | 35 | `HomeLocationX` float default NULL, |
@@ -35,50 +40,67 @@ CREATE TABLE `UserProfiles` ( | |||
35 | `HomeLookAtZ` float default NULL, | 40 | `HomeLookAtZ` float default NULL, |
36 | `Created` int(11) default NULL, | 41 | `Created` int(11) default NULL, |
37 | `LastLogin` int(11) default NULL, | 42 | `LastLogin` int(11) default NULL, |
38 | `RootInventoryFolderID` varchar(255) default NULL, | ||
39 | `UserInventoryURI` varchar(255) default NULL, | 43 | `UserInventoryURI` varchar(255) default NULL, |
40 | `UserAssetURI` varchar(255) default NULL, | 44 | `UserAssetURI` varchar(255) default NULL, |
41 | `Image` varchar(255) default NULL, | 45 | `Image` varchar(36) default NULL, |
42 | `FirstLifeImage` varchar(255) default NULL, | 46 | `FirstLifeImage` varchar(36) default NULL, |
43 | `AboutText` varchar(255) default NULL, | 47 | `AboutText` text default NULL, |
44 | `FirstLifeAboutText` varchar(255) default NULL, | 48 | `FirstLifeAboutText` text default NULL, |
49 | `CanDoMask` int(11) default NULL, | ||
50 | `WantDoMask` int(11) default NULL, | ||
51 | `UserFlags` int(11) default NULL, | ||
52 | `GodLevel` int(11) default NULL, | ||
53 | `CustomType` varchar(32) default NULL, | ||
54 | `Partner` varchar(36) default NULL, | ||
55 | `RootInventoryFolderID` varchar(36) default NULL, | ||
45 | PRIMARY KEY (`ID`), | 56 | PRIMARY KEY (`ID`), |
46 | KEY `user_surname` (`SurName`), | 57 | INDEX `UserSurnameIndex` (`SurName`), |
47 | KEY `user_firstname` (`FirstName`) | 58 | INDEX `UserFirstNameIndex` (`FirstName`), |
59 | UNIQUE INDEX `UserFullNameIndex` (`SurName`,`FirstName`) | ||
48 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 60 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
49 | 61 | ||
50 | CREATE TABLE `UserAppearances` ( | 62 | CREATE TABLE `UserAppearances` ( |
51 | `Owner` varchar(255) NOT NULL, | 63 | `Owner` varchar(36) NOT NULL, |
52 | `BodyItem` varchar(255) default NULL, | 64 | `BodyItem` varchar(36) default NULL, |
53 | `BodyAsset` varchar(255) default NULL, | 65 | `BodyAsset` varchar(36) default NULL, |
54 | `SkinItem` varchar(255) default NULL, | 66 | `SkinItem` varchar(36) default NULL, |
55 | `SkinAsset` varchar(255) default NULL, | 67 | `SkinAsset` varchar(36) default NULL, |
56 | `HairItem` varchar(255) default NULL, | 68 | `HairItem` varchar(36) default NULL, |
57 | `HairAsset` varchar(255) default NULL, | 69 | `HairAsset` varchar(36) default NULL, |
58 | `EyesItem` varchar(255) default NULL, | 70 | `EyesItem` varchar(36) default NULL, |
59 | `EyesAsset` varchar(255) default NULL, | 71 | `EyesAsset` varchar(36) default NULL, |
60 | `ShirtItem` varchar(255) default NULL, | 72 | `ShirtItem` varchar(36) default NULL, |
61 | `ShirtAsset` varchar(255) default NULL, | 73 | `ShirtAsset` varchar(36) default NULL, |
62 | `PantsItem` varchar(255) default NULL, | 74 | `PantsItem` varchar(36) default NULL, |
63 | `PantsAsset` varchar(255) default NULL, | 75 | `PantsAsset` varchar(36) default NULL, |
64 | `ShoesItem` varchar(255) default NULL, | 76 | `ShoesItem` varchar(36) default NULL, |
65 | `ShoesAsset` varchar(255) default NULL, | 77 | `ShoesAsset` varchar(36) default NULL, |
66 | `SocksItem` varchar(255) default NULL, | 78 | `SocksItem` varchar(36) default NULL, |
67 | `SocksAsset` varchar(255) default NULL, | 79 | `SocksAsset` varchar(36) default NULL, |
68 | `JacketItem` varchar(255) default NULL, | 80 | `JacketItem` varchar(36) default NULL, |
69 | `JacketAsset` varchar(255) default NULL, | 81 | `JacketAsset` varchar(36) default NULL, |
70 | `GlovesItem` varchar(255) default NULL, | 82 | `GlovesItem` varchar(36) default NULL, |
71 | `GlovesAsset` varchar(255) default NULL, | 83 | `GlovesAsset` varchar(36) default NULL, |
72 | `UnderShirtItem` varchar(255) default NULL, | 84 | `UnderShirtItem` varchar(36) default NULL, |
73 | `UnderShirtAsset` varchar(255) default NULL, | 85 | `UnderShirtAsset` varchar(36) default NULL, |
74 | `UnderPantsItem` varchar(255) default NULL, | 86 | `UnderPantsItem` varchar(36) default NULL, |
75 | `UnderPantsAsset` varchar(255) default NULL, | 87 | `UnderPantsAsset` varchar(36) default NULL, |
76 | `SkirtItem` varchar(255) default NULL, | 88 | `SkirtItem` varchar(36) default NULL, |
77 | `SkirtAsset` varchar(255) default NULL, | 89 | `SkirtAsset` varchar(36) default NULL, |
78 | `Texture` longblob, | 90 | `Texture` longblob, |
79 | `VisualParams` longblob, | 91 | `VisualParams` longblob, |
80 | `Serial` int(11) default NULL, | 92 | `Serial` int(11) default NULL, |
93 | `AvatarHeight` float default NULL, | ||
81 | PRIMARY KEY (`Owner`) | 94 | PRIMARY KEY (`Owner`) |
82 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 95 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
83 | 96 | ||
84 | COMMIT; \ No newline at end of file | 97 | CREATE TABLE `UserFriends` ( |
98 | `UserFriendID` VARCHAR(36) NOT NULL, | ||
99 | `OwnerID` VARCHAR(36) NOT NULL, | ||
100 | `FriendID` VARCHAR(36) NOT NULL, | ||
101 | `FriendPermissions` INT(11) NOT NULL, | ||
102 | PRIMARY KEY (`UserFriendID`), | ||
103 | UNIQUE INDEX (`OwnerID`,`FriendID`) | ||
104 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
105 | |||
106 | COMMIT; | ||
diff --git a/OpenSim/Data/NHibernate/Resources/MySQLDialect/003_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/MySQLDialect/003_RegionStore.sql index 230e93c..e30287b 100644 --- a/OpenSim/Data/NHibernate/Resources/MySQLDialect/003_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/MySQLDialect/003_RegionStore.sql | |||
@@ -1,26 +1,78 @@ | |||
1 | BEGIN; | 1 | BEGIN; |
2 | 2 | ||
3 | CREATE TABLE `PrimItems` ( | 3 | CREATE TABLE `PrimItems` ( |
4 | `ItemID` char(36) NOT NULL default '', | ||
5 | `GroupID` char(36) default NULL, | ||
6 | `PrimID` char(36) default NULL, | ||
7 | `ParentFolderID` char(36) default NULL, | ||
8 | `AssetID` char(36) default NULL, | ||
9 | `OwnerID` char(36) default NULL, | ||
10 | `LastOwnerID` char(36) default NULL, | ||
11 | `CreatorID` char(36) default NULL, | ||
12 | `CreationDate` bigint(20) default NULL, | ||
4 | `InvType` int(11) default NULL, | 13 | `InvType` int(11) default NULL, |
5 | `Name` varchar(255) default NULL, | 14 | `Name` varchar(255) default NULL, |
6 | `Description` varchar(255) default NULL, | 15 | `Description` varchar(255) default NULL, |
7 | `CreationDate` bigint(20) default NULL, | ||
8 | `NextPermissions` int(11) default NULL, | 16 | `NextPermissions` int(11) default NULL, |
9 | `CurrentPermissions` int(11) default NULL, | 17 | `CurrentPermissions` int(11) default NULL, |
10 | `BasePermissions` int(11) default NULL, | 18 | `BasePermissions` int(11) default NULL, |
11 | `EveryonePermissions` int(11) default NULL, | 19 | `EveryonePermissions` int(11) default NULL, |
12 | `GroupPermissions` int(11) default NULL, | 20 | `GroupPermissions` int(11) default NULL, |
13 | `Flags` int(11) NOT NULL default '0', | 21 | `Flags` int(11) NOT NULL default '0', |
14 | `ItemID` char(36) NOT NULL default '', | ||
15 | `PrimID` char(36) default NULL, | ||
16 | `AssetID` char(36) default NULL, | ||
17 | `ParentFolderID` char(36) default NULL, | ||
18 | `CreatorID` char(36) default NULL, | ||
19 | `OwnerID` char(36) default NULL, | ||
20 | `GroupID` char(36) default NULL, | ||
21 | `LastOwnerID` char(36) default NULL, | ||
22 | PRIMARY KEY (`ItemID`), | 22 | PRIMARY KEY (`ItemID`), |
23 | KEY `primitems_primid` (`PrimID`) | 23 | KEY `primitems_primid` (`PrimID`) |
24 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 24 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
25 | 25 | ||
26 | COMMIT; \ No newline at end of file | 26 | CREATE TABLE RegionSettings ( |
27 | `RegionID` char(36) default NULL, | ||
28 | |||
29 | `BlockTerraform` bit(1) default NULL, | ||
30 | `BlockFly` bit(1) default NULL, | ||
31 | `AllowDamage` bit(1) default NULL, | ||
32 | `RestrictPushing` bit(1) default NULL, | ||
33 | `AllowLandResell` bit(1) default NULL, | ||
34 | `AllowLandJoinDivide` bit(1) default NULL, | ||
35 | `BlockShowInSearch` bit(1) default NULL, | ||
36 | |||
37 | `AgentLimit` int(11) default NULL, | ||
38 | `ObjectBonus` double default NULL, | ||
39 | `Maturity` int(11) default NULL, | ||
40 | |||
41 | `DisableScripts` bit(1) default NULL, | ||
42 | `DisableCollisions` bit(1) default NULL, | ||
43 | `DisablePhysics` bit(1) default NULL, | ||
44 | |||
45 | `TerrainTexture1` char(36) default NULL, | ||
46 | `TerrainTexture2` char(36) default NULL, | ||
47 | `TerrainTexture3` char(36) default NULL, | ||
48 | `TerrainTexture4` char(36) default NULL, | ||
49 | |||
50 | `Elevation1NW` double default NULL, | ||
51 | `Elevation2NW` double default NULL, | ||
52 | `Elevation1NE` double default NULL, | ||
53 | `Elevation2NE` double default NULL, | ||
54 | `Elevation1SE` double default NULL, | ||
55 | `Elevation2SE` double default NULL, | ||
56 | `Elevation1SW` double default NULL, | ||
57 | `Elevation2SW` double default NULL, | ||
58 | |||
59 | `WaterHeight` double default NULL, | ||
60 | `TerrainRaiseLimit` double default NULL, | ||
61 | `TerrainLowerLimit` double default NULL, | ||
62 | |||
63 | `UseEstateSun` bit(1) default NULL, | ||
64 | `Sandbox` bit(1) default NULL, | ||
65 | |||
66 | `SunVectorX` double default NULL, | ||
67 | `SunVectorY` double default NULL, | ||
68 | `SunVectorZ` double default NULL, | ||
69 | |||
70 | `FixedSun` bit(1) default NULL, | ||
71 | `SunPosition` double default NULL, | ||
72 | |||
73 | `Covenant` char(36) default NULL, | ||
74 | |||
75 | PRIMARY KEY (RegionID) | ||
76 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | ||
77 | |||
78 | COMMIT; | ||
diff --git a/OpenSim/Data/NHibernate/Resources/RegionSettings.hbm.xml b/OpenSim/Data/NHibernate/Resources/RegionSettings.hbm.xml new file mode 100644 index 0000000..5cfccba --- /dev/null +++ b/OpenSim/Data/NHibernate/Resources/RegionSettings.hbm.xml | |||
@@ -0,0 +1,56 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" ?> | ||
2 | <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> | ||
3 | <class name="OpenSim.Framework.RegionSettings, OpenSim.Framework" table="RegionSettings" lazy="false"> | ||
4 | <id name="RegionUUID" column="RegionId" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"> | ||
5 | <generator class="assigned" /> | ||
6 | </id> | ||
7 | |||
8 | <property name="BlockTerraform" type="System.Boolean" /> | ||
9 | <property name="BlockFly" type="System.Boolean" /> | ||
10 | <property name="AllowDamage" type="System.Boolean" /> | ||
11 | <property name="RestrictPushing" type="System.Boolean" /> | ||
12 | <property name="AllowLandResell" type="System.Boolean" /> | ||
13 | <property name="AllowLandJoinDivide" type="System.Boolean" /> | ||
14 | <property name="BlockShowInSearch" type="System.Boolean" /> | ||
15 | |||
16 | <property name="AgentLimit" type="System.Int32" /> | ||
17 | <property name="ObjectBonus" type="System.Double" /> | ||
18 | <property name="Maturity" type="System.Int32" /> | ||
19 | |||
20 | <property name="DisableScripts" type="System.Boolean" /> | ||
21 | <property name="DisableCollisions" type="System.Boolean" /> | ||
22 | <property name="DisablePhysics" type="System.Boolean" /> | ||
23 | |||
24 | <property name="TerrainTexture1" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
25 | <property name="TerrainTexture2" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
26 | <property name="TerrainTexture3" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
27 | <property name="TerrainTexture4" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
28 | |||
29 | <property name="Elevation1NW" type="System.Double" /> | ||
30 | <property name="Elevation2NW" type="System.Double" /> | ||
31 | <property name="Elevation1NE" type="System.Double" /> | ||
32 | <property name="Elevation2NE" type="System.Double" /> | ||
33 | <property name="Elevation1SE" type="System.Double" /> | ||
34 | <property name="Elevation2SE" type="System.Double" /> | ||
35 | <property name="Elevation1SW" type="System.Double" /> | ||
36 | <property name="Elevation2SW" type="System.Double" /> | ||
37 | |||
38 | <property name="WaterHeight" type="System.Double" /> | ||
39 | <property name="TerrainRaiseLimit" type="System.Double" /> | ||
40 | <property name="TerrainLowerLimit" type="System.Double" /> | ||
41 | |||
42 | <property name="UseEstateSun" type="System.Boolean" /> | ||
43 | <property name="Sandbox" type="System.Boolean" /> | ||
44 | |||
45 | <property name="SunVector" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" > | ||
46 | <column name="SunVectorX" /> | ||
47 | <column name="SunVectorY" /> | ||
48 | <column name="SunVectorZ" /> | ||
49 | </property> | ||
50 | |||
51 | <property name="FixedSun" type="System.Boolean" /> | ||
52 | <property name="SunPosition" type="System.Double" /> | ||
53 | <property name="Covenant" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
54 | |||
55 | </class> | ||
56 | </hibernate-mapping> | ||
diff --git a/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml b/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml index 1851904..3144b0b 100644 --- a/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/RegionStore.hbm.xml | |||
@@ -13,12 +13,14 @@ | |||
13 | <property name="Description" type="String" length="255" /> | 13 | <property name="Description" type="String" length="255" /> |
14 | <property name="SitName" type="String" length="255" /> | 14 | <property name="SitName" type="String" length="255" /> |
15 | <property name="TouchName" type="String" length="255" /> | 15 | <property name="TouchName" type="String" length="255" /> |
16 | 16 | <property name="Color" type="OpenSim.Data.NHibernate.ColorUserType, OpenSim.Data.NHibernate" /> | |
17 | |||
17 | <property name="ObjectFlags" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 18 | <property name="ObjectFlags" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
18 | <property name="CreatorID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 19 | <property name="CreatorID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
19 | <property name="OwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 20 | <property name="OwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
20 | <property name="GroupID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 21 | <property name="GroupID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
21 | <property name="LastOwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 22 | <property name="LastOwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
23 | <property name="LinkNum" type="System.Int32" /> | ||
22 | 24 | ||
23 | <property name="OwnerMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 25 | <property name="OwnerMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
24 | <property name="NextOwnerMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 26 | <property name="NextOwnerMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
@@ -26,6 +28,12 @@ | |||
26 | <property name="EveryoneMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 28 | <property name="EveryoneMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
27 | <property name="BaseMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 29 | <property name="BaseMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
28 | 30 | ||
31 | <property name="Material" type="Byte" /> | ||
32 | <property name="ScriptAccessPin" type="System.Int32" /> | ||
33 | <property name="TextureAnimation" type="binary" /> | ||
34 | <property name="ParticleSystem" type="binary" /> | ||
35 | <property name="ClickAction" type="Byte" /> | ||
36 | |||
29 | <property name="OffsetPosition" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" > | 37 | <property name="OffsetPosition" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" > |
30 | <column name="PositionX" /> | 38 | <column name="PositionX" /> |
31 | <column name="PositionY" /> | 39 | <column name="PositionY" /> |
diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql index d557b9a..eaa0964 100644 --- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql +++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_RegionStore.sql | |||
@@ -2,25 +2,32 @@ BEGIN TRANSACTION; | |||
2 | 2 | ||
3 | create table Prims ( | 3 | create table Prims ( |
4 | UUID TEXT not null, | 4 | UUID TEXT not null, |
5 | RegionID TEXT, | ||
6 | GroupID TEXT, | ||
5 | ParentID INTEGER, | 7 | ParentID INTEGER, |
6 | ParentUUID TEXT, | 8 | ParentUUID TEXT, |
7 | RegionID TEXT, | 9 | OwnerID TEXT, |
10 | LastOwnerID TEXT, | ||
11 | CreatorID TEXT, | ||
8 | CreationDate INTEGER, | 12 | CreationDate INTEGER, |
13 | LinkNum INTEGER, | ||
9 | Name TEXT, | 14 | Name TEXT, |
10 | Text TEXT, | 15 | Text TEXT, |
11 | Description TEXT, | 16 | Description TEXT, |
12 | SitName TEXT, | 17 | SitName TEXT, |
13 | TouchName TEXT, | 18 | TouchName TEXT, |
14 | ObjectFlags INTEGER, | 19 | ObjectFlags INTEGER, |
15 | CreatorID TEXT, | ||
16 | OwnerID TEXT, | ||
17 | GroupID TEXT, | ||
18 | LastOwnerID TEXT, | ||
19 | OwnerMask INTEGER, | 20 | OwnerMask INTEGER, |
20 | NextOwnerMask INTEGER, | 21 | NextOwnerMask INTEGER, |
21 | GroupMask INTEGER, | 22 | GroupMask INTEGER, |
22 | EveryoneMask INTEGER, | 23 | EveryoneMask INTEGER, |
23 | BaseMask INTEGER, | 24 | BaseMask INTEGER, |
25 | Material INTEGER, | ||
26 | ScriptAccessPin INTEGER, | ||
27 | TextureAnimation BLOB, | ||
28 | ParticleSystem BLOB, | ||
29 | ClickAction INTEGER, | ||
30 | Color INTEGER, | ||
24 | PositionX NUMERIC, | 31 | PositionX NUMERIC, |
25 | PositionY NUMERIC, | 32 | PositionY NUMERIC, |
26 | PositionZ NUMERIC, | 33 | PositionZ NUMERIC, |
@@ -99,4 +106,45 @@ create table PrimItems ( | |||
99 | primary key (ItemID) | 106 | primary key (ItemID) |
100 | ); | 107 | ); |
101 | 108 | ||
102 | COMMIT; \ No newline at end of file | 109 | CREATE TABLE RegionSettings ( |
110 | RegionID TEXT not null, | ||
111 | BlockTerraform BIT, | ||
112 | BlockFly BIT, | ||
113 | AllowDamage BIT, | ||
114 | RestrictPushing BIT, | ||
115 | AllowLandResell BIT, | ||
116 | AllowLandJoinDivide BIT, | ||
117 | BlockShowInSearch BIT, | ||
118 | AgentLimit INTEGER, | ||
119 | ObjectBonus NUMERIC, | ||
120 | Maturity INTEGER, | ||
121 | DisableScripts BIT, | ||
122 | DisableCollisions BIT, | ||
123 | DisablePhysics BIT, | ||
124 | TerrainTexture1 TEXT, | ||
125 | TerrainTexture2 TEXT, | ||
126 | TerrainTexture3 TEXT, | ||
127 | TerrainTexture4 TEXT, | ||
128 | Elevation1NW NUMERIC, | ||
129 | Elevation2NW NUMERIC, | ||
130 | Elevation1NE NUMERIC, | ||
131 | Elevation2NE NUMERIC, | ||
132 | Elevation1SE NUMERIC, | ||
133 | Elevation2SE NUMERIC, | ||
134 | Elevation1SW NUMERIC, | ||
135 | Elevation2SW NUMERIC, | ||
136 | WaterHeight NUMERIC, | ||
137 | TerrainRaiseLimit NUMERIC, | ||
138 | TerrainLowerLimit NUMERIC, | ||
139 | UseEstateSun BIT, | ||
140 | Sandbox BIT, | ||
141 | SunVectorX NUMERIC, | ||
142 | SunVectorY NUMERIC, | ||
143 | SunVectorZ NUMERIC, | ||
144 | FixedSun BIT, | ||
145 | SunPosition NUMERIC, | ||
146 | Covenant TEXT, | ||
147 | primary key (RegionID) | ||
148 | ); | ||
149 | |||
150 | COMMIT; | ||
diff --git a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_UserStore.sql b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_UserStore.sql index 8d1ba5c..c5e42d5 100644 --- a/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_UserStore.sql +++ b/OpenSim/Data/NHibernate/Resources/SQLiteDialect/001_UserStore.sql | |||
@@ -12,15 +12,24 @@ create table UserAgents ( | |||
12 | LoginTime INTEGER, | 12 | LoginTime INTEGER, |
13 | LogoutTime INTEGER, | 13 | LogoutTime INTEGER, |
14 | Handle INTEGER, | 14 | Handle INTEGER, |
15 | PositionX NUMERIC, | ||
16 | PositionY NUMERIC, | ||
17 | PositionZ NUMERIC, | ||
18 | LookAtX NUMERIC, | ||
19 | LookAtY NUMERIC, | ||
20 | LookAtZ NUMERIC, | ||
15 | primary key (ProfileID) | 21 | primary key (ProfileID) |
16 | ); | 22 | ); |
23 | |||
17 | create table UserProfiles ( | 24 | create table UserProfiles ( |
18 | ID TEXT not null, | 25 | ID TEXT not null, |
26 | WebLoginKey TEXT, | ||
19 | FirstName TEXT, | 27 | FirstName TEXT, |
20 | SurName TEXT, | 28 | SurName TEXT, |
29 | Email TEXT, | ||
21 | PasswordHash TEXT, | 30 | PasswordHash TEXT, |
22 | PasswordSalt TEXT, | 31 | PasswordSalt TEXT, |
23 | WebLoginKey TEXT, | 32 | HomeRegionID TEXT, |
24 | HomeRegionX INTEGER, | 33 | HomeRegionX INTEGER, |
25 | HomeRegionY INTEGER, | 34 | HomeRegionY INTEGER, |
26 | HomeLocationX NUMERIC, | 35 | HomeLocationX NUMERIC, |
@@ -31,15 +40,22 @@ create table UserProfiles ( | |||
31 | HomeLookAtZ NUMERIC, | 40 | HomeLookAtZ NUMERIC, |
32 | Created INTEGER, | 41 | Created INTEGER, |
33 | LastLogin INTEGER, | 42 | LastLogin INTEGER, |
34 | RootInventoryFolderID TEXT, | ||
35 | UserInventoryURI TEXT, | 43 | UserInventoryURI TEXT, |
36 | UserAssetURI TEXT, | 44 | UserAssetURI TEXT, |
37 | Image TEXT, | 45 | Image TEXT, |
38 | FirstLifeImage TEXT, | 46 | FirstLifeImage TEXT, |
39 | AboutText TEXT, | 47 | AboutText TEXT, |
40 | FirstLifeAboutText TEXT, | 48 | FirstLifeAboutText TEXT, |
49 | RootInventoryFolderID TEXT, | ||
50 | `CanDoMask` INTEGER, | ||
51 | `WantDoMask` INTEGER, | ||
52 | `UserFlags` INTEGER, | ||
53 | `GodLevel` INTEGER, | ||
54 | `CustomType` TEXT, | ||
55 | `Partner` TEXT, | ||
41 | primary key (ID) | 56 | primary key (ID) |
42 | ); | 57 | ); |
58 | |||
43 | create table UserAppearances ( | 59 | create table UserAppearances ( |
44 | Owner TEXT not null, | 60 | Owner TEXT not null, |
45 | BodyItem TEXT, | 61 | BodyItem TEXT, |
@@ -71,9 +87,22 @@ create table UserAppearances ( | |||
71 | Texture BLOB, | 87 | Texture BLOB, |
72 | VisualParams BLOB, | 88 | VisualParams BLOB, |
73 | Serial INTEGER, | 89 | Serial INTEGER, |
90 | AvatarHeight NUMERIC, | ||
74 | primary key (Owner) | 91 | primary key (Owner) |
75 | ); | 92 | ); |
76 | create index user_firstname on UserProfiles (FirstName); | ||
77 | create index user_surname on UserProfiles (SurName); | ||
78 | 93 | ||
79 | COMMIT; \ No newline at end of file | 94 | |
95 | CREATE TABLE UserFriends ( | ||
96 | UserFriendID TEXT, | ||
97 | OwnerID TEXT, | ||
98 | FriendID TEXT, | ||
99 | FriendPermissions INTEGER, | ||
100 | primary key (UserFriendID) | ||
101 | ); | ||
102 | |||
103 | create index UserFirstNameIndex on UserProfiles (FirstName); | ||
104 | create index UserSurnameIndex on UserProfiles (SurName); | ||
105 | create unique index UserFullNameIndex on UserProfiles (FirstName,SurName); | ||
106 | create unique index UserFriendsOwnerFriendIndex on UserFriends (OwnerID,FriendID); | ||
107 | |||
108 | COMMIT; | ||
diff --git a/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml index e10fb8f..70b6998 100644 --- a/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserAgentData.hbm.xml | |||
@@ -4,6 +4,7 @@ | |||
4 | <id name="ProfileID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"> | 4 | <id name="ProfileID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"> |
5 | <generator class="assigned" /> | 5 | <generator class="assigned" /> |
6 | </id> | 6 | </id> |
7 | |||
7 | <property name="AgentIP" type="String" length="24" /> | 8 | <property name="AgentIP" type="String" length="24" /> |
8 | <property name="AgentPort" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 9 | <property name="AgentPort" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
9 | <property name="AgentOnline" type="boolean" /> | 10 | <property name="AgentOnline" type="boolean" /> |
@@ -14,8 +15,18 @@ | |||
14 | <property name="LoginTime" type="Int32" /> | 15 | <property name="LoginTime" type="Int32" /> |
15 | <property name="LogoutTime" type="Int32" /> | 16 | <property name="LogoutTime" type="Int32" /> |
16 | <property name="Handle" type="OpenSim.Data.NHibernate.UInt64Type, OpenSim.Data.NHibernate" /> | 17 | <property name="Handle" type="OpenSim.Data.NHibernate.UInt64Type, OpenSim.Data.NHibernate" /> |
17 | <!-- <property name="PositionX" type="Single" /> | 18 | |
18 | <property name="PositionY" type="Single" /> | 19 | <property name="Position" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" > |
19 | <property name="PositionZ" type="Single" /> --> | 20 | <column name="PositionX" /> |
21 | <column name="PositionY" /> | ||
22 | <column name="PositionZ" /> | ||
23 | </property> | ||
24 | |||
25 | <property name="LookAt" type="OpenSim.Data.NHibernate.Vector3UserType, OpenSim.Data.NHibernate" > | ||
26 | <column name="LookAtX" /> | ||
27 | <column name="LookAtY" /> | ||
28 | <column name="LookAtZ" /> | ||
29 | </property> | ||
30 | |||
20 | </class> | 31 | </class> |
21 | </hibernate-mapping> | 32 | </hibernate-mapping> |
diff --git a/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml index b633c34..21e547f 100644 --- a/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserAppearance.hbm.xml | |||
@@ -33,5 +33,6 @@ | |||
33 | <property name="Texture" type="OpenSim.Data.NHibernate.TextureUserType, OpenSim.Data.NHibernate" /> | 33 | <property name="Texture" type="OpenSim.Data.NHibernate.TextureUserType, OpenSim.Data.NHibernate" /> |
34 | <property name="VisualParams" type="binary" /> | 34 | <property name="VisualParams" type="binary" /> |
35 | <property name="Serial" type="Int32" /> | 35 | <property name="Serial" type="Int32" /> |
36 | <property name="AvatarHeight" type="Single" /> | ||
36 | </class> | 37 | </class> |
37 | </hibernate-mapping> | 38 | </hibernate-mapping> |
diff --git a/OpenSim/Data/NHibernate/Resources/UserFriend.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserFriend.hbm.xml new file mode 100644 index 0000000..70961b0 --- /dev/null +++ b/OpenSim/Data/NHibernate/Resources/UserFriend.hbm.xml | |||
@@ -0,0 +1,11 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" ?> | ||
2 | <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> | ||
3 | <class name="OpenSim.Data.NHibernate.UserFriend, OpenSim.Data.NHibernate" table="UserFriends" lazy="false"> | ||
4 | <id name="UserFriendID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"> | ||
5 | <generator class="assigned" /> | ||
6 | </id> | ||
7 | <property name="OwnerID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
8 | <property name="FriendID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
9 | <property name="FriendPermissions" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | ||
10 | </class> | ||
11 | </hibernate-mapping> | ||
diff --git a/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml b/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml index 740a9f1..5b1f9b0 100644 --- a/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml +++ b/OpenSim/Data/NHibernate/Resources/UserProfileData.hbm.xml | |||
@@ -4,11 +4,13 @@ | |||
4 | <id name="ID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"> | 4 | <id name="ID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate"> |
5 | <generator class="assigned" /> | 5 | <generator class="assigned" /> |
6 | </id> | 6 | </id> |
7 | <property name="FirstName" index="user_firstname" type="String" length="32" /> | 7 | <property name="WebLoginKey" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
8 | <property name="SurName" index="user_surname" type="String" length="32" /> | 8 | <property name="FirstName" index="UserFirstNameIndex" type="String" length="32" /> |
9 | <property name="SurName" index="UserSurnameIndex" type="String" length="32" /> | ||
10 | <property name="Email" type="String" length="250" /> | ||
9 | <property name="PasswordHash" type="String" length="32" /> | 11 | <property name="PasswordHash" type="String" length="32" /> |
10 | <property name="PasswordSalt" type="String" length="32" /> | 12 | <property name="PasswordSalt" type="String" length="32" /> |
11 | <property name="WebLoginKey" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 13 | <property name="HomeRegionID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
12 | <property name="HomeRegionX" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 14 | <property name="HomeRegionX" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
13 | <property name="HomeRegionY" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | 15 | <property name="HomeRegionY" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> |
14 | <property name="HomeLocationX" type="Single" /> | 16 | <property name="HomeLocationX" type="Single" /> |
@@ -19,12 +21,18 @@ | |||
19 | <property name="HomeLookAtZ" type="Single" /> | 21 | <property name="HomeLookAtZ" type="Single" /> |
20 | <property name="Created" type="Int32" /> | 22 | <property name="Created" type="Int32" /> |
21 | <property name="LastLogin" type="Int32" /> | 23 | <property name="LastLogin" type="Int32" /> |
22 | <property name="RootInventoryFolderID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
23 | <property name="UserInventoryURI" type="String" length="255"/> | 24 | <property name="UserInventoryURI" type="String" length="255"/> |
24 | <property name="UserAssetURI" type="String" length="255"/> | 25 | <property name="UserAssetURI" type="String" length="255"/> |
25 | <property name="Image" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 26 | <property name="Image" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
26 | <property name="FirstLifeImage" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | 27 | <property name="FirstLifeImage" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> |
27 | <property name="AboutText" type="String" length="255" /> | 28 | <property name="AboutText" type="String" length="255" /> |
28 | <property name="FirstLifeAboutText" type="String" length="255" /> | 29 | <property name="FirstLifeAboutText" type="String" length="255" /> |
30 | <property name="CanDoMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | ||
31 | <property name="WantDoMask" type="OpenSim.Data.NHibernate.UInt32Type, OpenSim.Data.NHibernate" /> | ||
32 | <property name="UserFlags" type="Int32" /> | ||
33 | <property name="GodLevel" type="Int32" /> | ||
34 | <property name="CustomType" type="String" length="32" /> | ||
35 | <property name="Partner" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
36 | <property name="RootInventoryFolderID" type="OpenSim.Data.NHibernate.UUIDUserType, OpenSim.Data.NHibernate" /> | ||
29 | </class> | 37 | </class> |
30 | </hibernate-mapping> | 38 | </hibernate-mapping> |
diff --git a/OpenSim/Data/NHibernate/UserFriend.cs b/OpenSim/Data/NHibernate/UserFriend.cs new file mode 100644 index 0000000..c16b3c8 --- /dev/null +++ b/OpenSim/Data/NHibernate/UserFriend.cs | |||
@@ -0,0 +1,28 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | using OpenMetaverse; | ||
5 | |||
6 | namespace OpenSim.Data.NHibernate | ||
7 | { | ||
8 | public class UserFriend | ||
9 | { | ||
10 | public UserFriend() | ||
11 | { | ||
12 | } | ||
13 | |||
14 | public UserFriend(UUID userFriendID, UUID ownerID, UUID friendID, uint friendPermissions) | ||
15 | { | ||
16 | this.UserFriendID = userFriendID; | ||
17 | this.OwnerID = ownerID; | ||
18 | this.FriendID = friendID; | ||
19 | this.FriendPermissions = friendPermissions; | ||
20 | } | ||
21 | |||
22 | public UUID UserFriendID { get; set; } | ||
23 | public UUID OwnerID { get; set; } | ||
24 | public UUID FriendID { get; set; } | ||
25 | public uint FriendPermissions { get; set; } | ||
26 | |||
27 | } | ||
28 | } | ||