diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 679b9b8..90cd3b1 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -3957,7 +3957,18 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
3957 | UUID key = new UUID(); | 3957 | UUID key = new UUID(); |
3958 | if (UUID.TryParse(id, out key)) | 3958 | if (UUID.TryParse(id, out key)) |
3959 | { | 3959 | { |
3960 | return World.GetSceneObjectPart(World.Entities[key].LocalId).OwnerID.ToString(); | 3960 | try |
3961 | { | ||
3962 | SceneObjectPart obj = World.GetSceneObjectPart(World.Entities[key].LocalId); | ||
3963 | if (obj == null) | ||
3964 | return id; // the key is for an agent so just return the key | ||
3965 | else | ||
3966 | return obj.OwnerID.ToString(); | ||
3967 | } | ||
3968 | catch (KeyNotFoundException) | ||
3969 | { | ||
3970 | return id; // The Object/Agent is not in the region so just return the key | ||
3971 | } | ||
3961 | } | 3972 | } |
3962 | else | 3973 | else |
3963 | { | 3974 | { |