diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index d2cfdca..110ece4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3815,7 +3815,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3815 | UUID key = new UUID(); | 3815 | UUID key = new UUID(); |
3816 | if (UUID.TryParse(id, out key)) | 3816 | if (UUID.TryParse(id, out key)) |
3817 | { | 3817 | { |
3818 | return World.GetSceneObjectPart(World.Entities[key].LocalId).OwnerID.ToString(); | 3818 | try |
3819 | { | ||
3820 | SceneObjectPart obj = World.GetSceneObjectPart(World.Entities[key].LocalId); | ||
3821 | if (obj == null) | ||
3822 | return id; // the key is for an agent so just return the key | ||
3823 | else | ||
3824 | return obj.OwnerID.ToString(); | ||
3825 | } | ||
3826 | catch (KeyNotFoundException) | ||
3827 | { | ||
3828 | return id; // The Object/Agent not in the region so just return the key | ||
3829 | } | ||
3819 | } | 3830 | } |
3820 | else | 3831 | else |
3821 | { | 3832 | { |