diff options
author | Homer Horwitz | 2008-11-01 22:09:48 +0000 |
---|---|---|
committer | Homer Horwitz | 2008-11-01 22:09:48 +0000 |
commit | 38e8853e5761d09a7e8f580dd277d9b99b834696 (patch) | |
tree | 653fe4c9075a03c05a4b5782f7309afa83062e5c /OpenSim/Data/SQLite | |
parent | * minor: Remove mono compiler warning (diff) | |
download | opensim-SC_OLD-38e8853e5761d09a7e8f580dd277d9b99b834696.zip opensim-SC_OLD-38e8853e5761d09a7e8f580dd277d9b99b834696.tar.gz opensim-SC_OLD-38e8853e5761d09a7e8f580dd277d9b99b834696.tar.bz2 opensim-SC_OLD-38e8853e5761d09a7e8f580dd277d9b99b834696.tar.xz |
Megapatch that fixes/adds: friend offer/deny/accept, friendship termination,
on-/offline updates, calling cards for friends.
This adds methods in the DB layer and changes the MessagingServer, so a full
update (incl. UGAIM) is necessary to get it working. Older regions shouldn't
break, nor should older UGAIM break newer regions, but friends/presence will
only work with all concerned parts (UGAIM, source region and destination
region) at this revision (or later).
I added the DB code for MSSQL, too, but couldn't test that.
BEWARE: May contain bugs.
Diffstat (limited to 'OpenSim/Data/SQLite')
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteUserData.cs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteUserData.cs b/OpenSim/Data/SQLite/SQLiteUserData.cs index 82db481..2f0863e 100644 --- a/OpenSim/Data/SQLite/SQLiteUserData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserData.cs | |||
@@ -332,8 +332,28 @@ namespace OpenSim.Data.SQLite | |||
332 | return returnlist; | 332 | return returnlist; |
333 | } | 333 | } |
334 | 334 | ||
335 | override public Dictionary<UUID, FriendRegionInfo> GetFriendRegionInfos (List<UUID> uuids) | ||
336 | { | ||
337 | Dictionary<UUID, FriendRegionInfo> infos = new Dictionary<UUID,FriendRegionInfo>(); | ||
335 | 338 | ||
336 | 339 | DataTable agents = ds.Tables["useragents"]; | |
340 | foreach (UUID uuid in uuids) | ||
341 | { | ||
342 | lock (ds) | ||
343 | { | ||
344 | DataRow row = agents.Rows.Find(Util.ToRawUuidString(uuid)); | ||
345 | if (row == null) infos[uuid] = null; | ||
346 | else | ||
347 | { | ||
348 | FriendRegionInfo fri = new FriendRegionInfo(); | ||
349 | fri.isOnline = (bool)row["agentOnline"]; | ||
350 | fri.regionHandle = Convert.ToUInt64(row["currentHandle"]); | ||
351 | infos[uuid] = fri; | ||
352 | } | ||
353 | } | ||
354 | } | ||
355 | return infos; | ||
356 | } | ||
337 | 357 | ||
338 | #endregion | 358 | #endregion |
339 | 359 | ||