From 5c5966545d14de43500b95109e8ce81058ebe2c3 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sun, 28 Feb 2010 12:07:38 -0800 Subject: Initial Online friends notification seems to be working reliably now. All this needs more testing, but everything is there. --- OpenSim/Region/Framework/Scenes/EventManager.cs | 27 ++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes/EventManager.cs') diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 57e1c37..ac04462 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -66,13 +66,16 @@ namespace OpenSim.Region.Framework.Scenes public event OnClientConnectCoreDelegate OnClientConnect; public delegate void OnNewClientDelegate(IClientAPI client); - + /// /// Deprecated in favour of OnClientConnect. /// Will be marked Obsolete after IClientCore has 100% of IClientAPI interfaces. /// public event OnNewClientDelegate OnNewClient; + public delegate void OnClientLoginDelegate(IClientAPI client); + public event OnClientLoginDelegate OnClientLogin; + public delegate void OnNewPresenceDelegate(ScenePresence presence); public event OnNewPresenceDelegate OnNewPresence; @@ -583,6 +586,28 @@ namespace OpenSim.Region.Framework.Scenes } } + public void TriggerOnClientLogin(IClientAPI client) + { + OnClientLoginDelegate handlerClientLogin = OnClientLogin; + if (handlerClientLogin != null) + { + foreach (OnClientLoginDelegate d in handlerClientLogin.GetInvocationList()) + { + try + { + d(client); + } + catch (Exception e) + { + m_log.ErrorFormat( + "[EVENT MANAGER]: Delegate for TriggerOnClientLogin failed - continuing. {0} {1}", + e.Message, e.StackTrace); + } + } + } + + } + public void TriggerOnNewPresence(ScenePresence presence) { OnNewPresenceDelegate handlerNewPresence = OnNewPresence; -- cgit v1.1