diff options
Diffstat (limited to '')
3 files changed, 23 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/BasePresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/BasePresenceServiceConnector.cs index fdbe10a..e014a57 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/BasePresenceServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/BasePresenceServiceConnector.cs | |||
@@ -123,6 +123,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | |||
123 | return m_PresenceService.GetAgent(sessionID); | 123 | return m_PresenceService.GetAgent(sessionID); |
124 | } | 124 | } |
125 | 125 | ||
126 | public PresenceInfo GetAgentByUser(UUID userID) | ||
127 | { | ||
128 | return m_PresenceService.GetAgentByUser(userID); | ||
129 | } | ||
130 | |||
126 | public PresenceInfo[] GetAgents(string[] userIDs) | 131 | public PresenceInfo[] GetAgents(string[] userIDs) |
127 | { | 132 | { |
128 | // Don't bother potentially making a useless network call if we not going to ask for any users anyway. | 133 | // Don't bother potentially making a useless network call if we not going to ask for any users anyway. |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs index 50c252c..a7e62eb 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/PresenceDetector.cs | |||
@@ -35,7 +35,7 @@ using OpenSim.Services.Interfaces; | |||
35 | 35 | ||
36 | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence | 36 | namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence |
37 | { | 37 | { |
38 | public class PresenceDetector | 38 | public class PresenceDetector |
39 | { | 39 | { |
40 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 40 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
41 | 41 | ||
@@ -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); |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs index 69bac82..7838d12 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs | |||
@@ -72,7 +72,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence.Tests | |||
72 | public void TestPresenceV0_1() | 72 | public void TestPresenceV0_1() |
73 | { | 73 | { |
74 | SetUp(); | 74 | SetUp(); |
75 | 75 | ||
76 | // Let's stick in a test presence | 76 | // Let's stick in a test presence |
77 | /* | 77 | /* |
78 | PresenceData p = new PresenceData(); | 78 | PresenceData p = new PresenceData(); |