diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs index 50c252c..117f02c 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | |||
@@ -68,6 +68,22 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
68 | 68 | ||
69 | public void OnMakeRootAgent(ScenePresence sp) | 69 | public void OnMakeRootAgent(ScenePresence sp) |
70 | { | 70 | { |
71 | if (sp.isNPC) | ||
72 | return; | ||
73 | |||
74 | if(sp.gotCrossUpdate) | ||
75 | { | ||
76 | Util.FireAndForget(delegate | ||
77 | { | ||
78 | DoOnMakeRootAgent(sp); | ||
79 | }, null, "PresenceDetector_MakeRoot"); | ||
80 | } | ||
81 | else | ||
82 | DoOnMakeRootAgent(sp); | ||
83 | } | ||
84 | |||
85 | public void DoOnMakeRootAgent(ScenePresence sp) | ||
86 | { | ||
71 | // m_log.DebugFormat("[PRESENCE DETECTOR]: Detected root presence {0} in {1}", sp.UUID, sp.Scene.RegionInfo.RegionName); | 87 | // m_log.DebugFormat("[PRESENCE DETECTOR]: Detected root presence {0} in {1}", sp.UUID, sp.Scene.RegionInfo.RegionName); |
72 | if (sp.PresenceType != PresenceType.Npc) | 88 | if (sp.PresenceType != PresenceType.Npc) |
73 | m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID); | 89 | m_PresenceService.ReportAgent(sp.ControllingClient.SessionId, sp.Scene.RegionInfo.RegionID); |