diff options
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs index a7e62eb..3f418f6 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | |||
@@ -50,7 +50,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
50 | public void AddRegion(Scene scene) | 50 | public void AddRegion(Scene scene) |
51 | { | 51 | { |
52 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; | 52 | scene.EventManager.OnMakeRootAgent += OnMakeRootAgent; |
53 | scene.EventManager.OnNewClient += OnNewClient; | ||
54 | 53 | ||
55 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); | 54 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); |
56 | 55 | ||
@@ -61,7 +60,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
61 | public void RemoveRegion(Scene scene) | 60 | public void RemoveRegion(Scene scene) |
62 | { | 61 | { |
63 | scene.EventManager.OnMakeRootAgent -= OnMakeRootAgent; | 62 | scene.EventManager.OnMakeRootAgent -= OnMakeRootAgent; |
64 | scene.EventManager.OnNewClient -= OnNewClient; | ||
65 | 63 | ||
66 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); | 64 | m_PresenceService.LogoutRegionAgents(scene.RegionInfo.RegionID); |
67 | } | 65 | } |
@@ -71,7 +69,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
71 | if (sp.IsNPC) | 69 | if (sp.IsNPC) |
72 | return; | 70 | return; |
73 | 71 | ||
74 | if(sp.gotCrossUpdate) | 72 | sp.ControllingClient.OnConnectionClosed += OnConnectionClose; |
73 | |||
74 | if (sp.gotCrossUpdate) | ||
75 | { | 75 | { |
76 | Util.FireAndForget(delegate | 76 | Util.FireAndForget(delegate |
77 | { | 77 | { |
@@ -89,11 +89,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
89 | m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID); | 89 | m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID); |
90 | } | 90 | } |
91 | 91 | ||
92 | public void OnNewClient(IClientAPI client) | ||
93 | { | ||
94 | client.OnConnectionClosed += OnConnectionClose; | ||
95 | } | ||
96 | |||
97 | public void OnConnectionClose(IClientAPI client) | 92 | public void OnConnectionClose(IClientAPI client) |
98 | { | 93 | { |
99 | if (client != null && client.SceneAgent != null && !client.SceneAgent.IsChildAgent) | 94 | if (client != null && client.SceneAgent != null && !client.SceneAgent.IsChildAgent) |