diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 0c7398d5f6..ad96cb7654 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -71,6 +71,8 @@ using PrimType = OpenSim.Region.Framework.Scenes.PrimType; using RegionFlags = OpenSim.Framework.RegionFlags; using RegionInfo = OpenSim.Framework.RegionInfo; +#pragma warning disable IDE1006 + namespace OpenSim.Region.ScriptEngine.Shared.Api { /// diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 09cde6964b..f514c99549 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -59,6 +59,8 @@ using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; using PermissionMask = OpenSim.Framework.PermissionMask; using TPFlags = OpenSim.Framework.Constants.TeleportFlags; +#pragma warning disable IDE1006 + namespace OpenSim.Region.ScriptEngine.Shared.Api { ////////////////////////////////////////////////////////////// @@ -6126,5 +6128,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return 0; } + + public LSL_Integer osAvatarType(LSL_Key avkey) + { + if (!UUID.TryParse(avkey.m_string, out UUID avId)) + return -1; + + ScenePresence av = World.GetScenePresence(avId); + if(av == null || av.IsDeleted) + return 0; + + return av.IsNPC ? 2 : 1; + } } } \ No newline at end of file diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs index 5883d4ad16..8ea282cf73 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs @@ -35,6 +35,8 @@ using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion; using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString; using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; +#pragma warning disable IDE1006 + namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces { public interface ILSL_Api diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 105789f4aa..b0a397770e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -25,6 +25,8 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#pragma warning disable IDE1006 + using System; using System.Collections; using OpenSim.Region.ScriptEngine.Interfaces; @@ -591,5 +593,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces void osLinkParticleSystem(LSL_Integer linknumber, LSL_List rules); LSL_Integer osNpcLookAt(LSL_Key npckey, LSL_Integer type, LSL_Key objkey, vector offset); + + LSL_Integer osAvatarType(LSL_Key avkey); } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs index 01da4d8f42..3fcfd95a73 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs @@ -43,6 +43,8 @@ using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion; using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString; using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; +#pragma warning disable IDE1006 + namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { public partial class ScriptBaseClass : MarshalByRefObject diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 26ff160310..cfa090c016 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -45,6 +45,8 @@ using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString; using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat; using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger; +#pragma warning disable IDE1006 + namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { public partial class ScriptBaseClass : MarshalByRefObject @@ -1548,5 +1550,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { return m_OSSL_Functions.osNpcLookAt(npckey, type, objkey, offset); } + + public LSL_Integer osAvatarType(LSL_Key avkey) + { + return m_OSSL_Functions.osAvatarType(avkey); + } } }