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. --- .../Communications/IInterRegionCommunications.cs | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'OpenSim/Framework/Communications/IInterRegionCommunications.cs') diff --git a/OpenSim/Framework/Communications/IInterRegionCommunications.cs b/OpenSim/Framework/Communications/IInterRegionCommunications.cs index 3dd5561..6b589b9 100644 --- a/OpenSim/Framework/Communications/IInterRegionCommunications.cs +++ b/OpenSim/Framework/Communications/IInterRegionCommunications.cs @@ -25,6 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using System.Collections.Generic; using OpenMetaverse; namespace OpenSim.Framework.Communications @@ -46,5 +47,42 @@ namespace OpenSim.Framework.Communications bool AcknowledgePrimCrossed(ulong regionHandle, UUID primID); bool TellRegionToCloseChildConnection(ulong regionHandle, UUID agentID); + + /// + /// Try to inform friends in the given region about online status of agent. + /// + /// + /// The of the agent. + /// + /// + /// The regionHandle of the region. + /// + /// + /// A List of s of friends to inform in the given region. + /// + /// + /// Is the agent online or offline + /// + /// + /// A list of friends that couldn't be reached on this region. + /// + List InformFriendsInOtherRegion(UUID agentId, ulong destRegionHandle, List friends, bool online); + + /// + /// Send TerminateFriend of exFriendID to agent agentID in region regionHandle. + /// + /// + /// The handle of the region agentID is in (hopefully). + /// + /// + /// The agent to send the packet to. + /// + /// + /// The ex-friends ID. + /// + /// + /// Whether the packet could be sent. False if the agent couldn't be found in the region. + /// + bool TriggerTerminateFriend(ulong regionHandle, UUID agentID, UUID exFriendID); } } -- cgit v1.1