diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index e299f96..0dd1787 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -4296,7 +4296,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4296 | } | 4296 | } |
4297 | 4297 | ||
4298 | 4298 | ||
4299 | pinfo = World.PresenceService.GetAgent(uuid); | 4299 | PresenceInfo[] pinfos = World.PresenceService.GetAgents(new string[] { uuid.ToString() }); |
4300 | if (pinfos != null && pinfos.Length > 0) | ||
4301 | { | ||
4302 | foreach (PresenceInfo p in pinfos) | ||
4303 | { | ||
4304 | if (p.RegionID != UUID.Zero) | ||
4305 | { | ||
4306 | pinfo = p; | ||
4307 | } | ||
4308 | } | ||
4309 | } | ||
4300 | 4310 | ||
4301 | ce = new UserInfoCacheEntry(); | 4311 | ce = new UserInfoCacheEntry(); |
4302 | ce.time = Util.EnvironmentTickCount(); | 4312 | ce.time = Util.EnvironmentTickCount(); |
@@ -4315,7 +4325,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4315 | 4325 | ||
4316 | if (Util.EnvironmentTickCount() < ce.time || (Util.EnvironmentTickCount() - ce.time) >= 20000) | 4326 | if (Util.EnvironmentTickCount() < ce.time || (Util.EnvironmentTickCount() - ce.time) >= 20000) |
4317 | { | 4327 | { |
4318 | pinfo = World.PresenceService.GetAgent(uuid); | 4328 | PresenceInfo[] pinfos = World.PresenceService.GetAgents(new string[] { uuid.ToString() }); |
4329 | if (pinfos != null && pinfos.Length > 0) | ||
4330 | { | ||
4331 | foreach (PresenceInfo p in pinfos) | ||
4332 | { | ||
4333 | if (p.RegionID != UUID.Zero) | ||
4334 | { | ||
4335 | pinfo = p; | ||
4336 | } | ||
4337 | } | ||
4338 | } | ||
4339 | else | ||
4340 | pinfo = null; | ||
4319 | 4341 | ||
4320 | ce.time = Util.EnvironmentTickCount(); | 4342 | ce.time = Util.EnvironmentTickCount(); |
4321 | ce.pinfo = pinfo; | 4343 | ce.pinfo = pinfo; |