From 57a11325851b92e2201b0e727596b4920009246f Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sun, 30 Dec 2007 23:29:44 +0000 Subject: * Fixed References in Prebuild so the project compiles * Added Friends List methods to IUserData interface * Created Stub friendslist Database Methods --- .../Region/Environment/Modules/FriendsModule.cs | 43 ++++++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Environment') diff --git a/OpenSim/Region/Environment/Modules/FriendsModule.cs b/OpenSim/Region/Environment/Modules/FriendsModule.cs index d9f09f7..d2fcba9 100644 --- a/OpenSim/Region/Environment/Modules/FriendsModule.cs +++ b/OpenSim/Region/Environment/Modules/FriendsModule.cs @@ -27,24 +27,61 @@ */ using Nini.Config; +using System; +using System.Collections; +using System.Collections.Generic; +using OpenSim.Framework; +using OpenSim.Framework.Console; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Scenes; +using libsecondlife; +using libsecondlife.Packets; namespace OpenSim.Region.Environment.Modules { public class FriendsModule : IRegionModule { - private Scene m_scene; + private List m_scenes = new List(); + private LogBase m_log; public void Initialise(Scene scene, IConfigSource config) { - m_scene = scene; + m_log = MainLog.Instance; + if (!m_scenes.Contains(scene)) + { + m_scenes.Add(scene); + scene.EventManager.OnNewClient += OnNewClient; + } + } + + private void OnNewClient(IClientAPI client) + { + FormFriendship(client,new Guid("c43a67ab-b196-4d62-936c-b40369547dee")); + FormFriendship(client, new Guid("0a2f777b-f44c-4662-8b22-c90ae038a3e6")); } public void PostInitialise() { } + private void FormFriendship(IClientAPI client, Guid friend) + { + foreach (Scene scene in m_scenes) + { + if (scene.Entities.ContainsKey(client.AgentId) && scene.Entities[client.AgentId] is ScenePresence) + { + OnlineNotificationPacket ONPack = new OnlineNotificationPacket(); + OnlineNotificationPacket.AgentBlockBlock[] AgentBlock = new OnlineNotificationPacket.AgentBlockBlock[1]; + + AgentBlock[0] = new OnlineNotificationPacket.AgentBlockBlock(); + AgentBlock[0].AgentID = new LLUUID(friend); + ONPack.AgentBlock = AgentBlock; + client.OutPacket(ONPack,ThrottleOutPacketType.Task); + } + } + + } + public void Close() { } @@ -56,7 +93,7 @@ namespace OpenSim.Region.Environment.Modules public bool IsSharedModule { - get { return false; } + get { return true; } } } } \ No newline at end of file -- cgit v1.1