From 38e8853e5761d09a7e8f580dd277d9b99b834696 Mon Sep 17 00:00:00 2001
From: Homer Horwitz
Date: Sat, 1 Nov 2008 22:09:48 +0000
Subject: 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.
---
.../Framework/Communications/UserManagerBase.cs | 24 +++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Framework/Communications/UserManagerBase.cs')
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index ba9cf27..7189eee 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -35,6 +35,7 @@ using OpenMetaverse;
using OpenMetaverse.StructuredData;
using log4net;
using Nwc.XmlRpc;
+using OpenSim.Framework;
using OpenSim.Framework.Statistics;
namespace OpenSim.Framework.Communications
@@ -42,7 +43,7 @@ namespace OpenSim.Framework.Communications
///
/// Base class for user management (create, read, etc)
///
- public abstract class UserManagerBase : IUserService, IUserServiceAdmin, IAvatarService
+ public abstract class UserManagerBase : IUserService, IUserServiceAdmin, IAvatarService, IMessagingService
{
private static readonly ILog m_log
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -285,6 +286,27 @@ namespace OpenSim.Framework.Communications
return null;
}
+ public Dictionary GetFriendRegionInfos (List uuids)
+ {
+ foreach (IUserDataPlugin plugin in _plugins)
+ {
+ try
+ {
+ Dictionary result = plugin.GetFriendRegionInfos(uuids);
+
+ if (result != null)
+ {
+ return result;
+ }
+ }
+ catch (Exception e)
+ {
+ m_log.Info("[USERSTORAGE]: Unable to GetFriendRegionInfos via " + plugin.Name + "(" + e.ToString() + ")");
+ }
+ }
+ return null;
+ }
+
public void StoreWebLoginKey(UUID agentID, UUID webLoginKey)
{
foreach (IUserDataPlugin plugin in _plugins)
--
cgit v1.1