mantis 8577: add key osGetInventoryItemKey(string name) to get a inventory item ID within prim inventory. the llGetInventory does return the asset it, not item.

UbitUmarov [2019-08-16 20:22:16]
mantis 8577: add key osGetInventoryItemKey(string name) to get a inventory item ID within prim inventory. the llGetInventory does return the asset it, not item.
Filename
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
bin/ScriptSyntax.xml
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 62da221..6ee83ae 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -5479,6 +5479,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
             return id.ToString();
         }

+        public LSL_Key osGetInventoryItemKey(LSL_String name)
+        {
+            m_host.AddScriptLPS(1);
+
+            TaskInventoryItem item = m_host.Inventory.GetInventoryItem(name);
+
+            if (item == null)
+                return UUID.Zero.ToString();
+
+            if ((item.CurrentPermissions
+                 & (uint)(PermissionMask.Copy | PermissionMask.Transfer | PermissionMask.Modify))
+                    == (uint)(PermissionMask.Copy | PermissionMask.Transfer | PermissionMask.Modify))
+            {
+                return item.ItemID.ToString();
+            }
+
+            return UUID.Zero.ToString();
+        }
+
         public LSL_String osGetInventoryName(LSL_Key itemId)
         {
             m_host.AddScriptLPS(1);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 7c5ced8..c65b785 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -549,6 +549,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
         LSL_Integer osApproxEquals(rotation ra, rotation rb);
         LSL_Integer osApproxEquals(rotation ra, rotation rb, LSL_Float margin);
         LSL_Key osGetInventoryLastOwner(LSL_String itemNameOrId);
+        LSL_Key osGetInventoryItemKey(LSL_String name);
         LSL_String osGetInventoryName(LSL_Key itemId);
         LSL_String osGetInventoryDesc(LSL_String itemNameOrId);
         LSL_Key osGetLastChangedEventKey();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index f93cea8..1d39e70 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -35,7 +35,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
     public partial class ScriptBaseClass
     {
         // SCRIPTS CONSTANTS
-        public static readonly LSLInteger OS_APIVERSION = 5;
+        public static readonly LSLInteger OS_APIVERSION = 6;

         public static readonly LSLInteger TRUE = 1;
         public static readonly LSLInteger FALSE = 0;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index 6a70305..12c63b3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -1382,6 +1382,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
             return m_OSSL_Functions.osGetInventoryLastOwner(itemNameOrId);
         }

+        public LSL_Key osGetInventoryItemKey(LSL_String name)
+        {
+            return m_OSSL_Functions.osGetInventoryItemKey(name);
+        }
+
         public LSL_String osGetInventoryName(LSL_Key itemId)
         {
             return m_OSSL_Functions.osGetInventoryName(itemId);
diff --git a/bin/ScriptSyntax.xml b/bin/ScriptSyntax.xml
index 34cd1cc..12c3a30 100644
--- a/bin/ScriptSyntax.xml
+++ b/bin/ScriptSyntax.xml
@@ -1,4 +1,4 @@
-d2556181-baf5-e5b9-c8ec-99eda597b9f6
+4c3dbda3-bc1e-b0f0-c532-2c6daf1e2343
 <llsd><map><key>llsd-lsl-syntax-version</key><integer>2</integer>
 <key>controls</key>
 <map>
@@ -1513,7 +1513,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  </map>
  <key>OS_APIVERSION</key><map>
   <key>type</key><string>integer</string>
-  <key>value</key><string>5</string>
+  <key>value</key><string>6</string>
  </map>
  <key>OS_ATTACH_MSG_ALL</key><map>
   <key>type</key><string>integer</string>
@@ -3479,7 +3479,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>arguments</key><array>
    <map><key>name</key><map><key>type</key><string>string</string></map></map>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
    <map><key>accept</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
@@ -3507,7 +3507,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <key>llCreateLink</key>
  <map>
   <key>arguments</key><array>
-   <map><key>targetId</key><map><key>type</key><string>string</string></map></map>
+   <map><key>targetId</key><map><key>type</key><string>key</string></map></map>
    <map><key>parent</key><map><key>type</key><string>integer</string></map></map>
   </array>
   <key>tooltip</key><string>Sleep 1.0</string>
@@ -3752,14 +3752,14 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetAgentLanguage</key>
  <map>
   <key>return</key><string>string</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetAgentList</key>
@@ -3774,7 +3774,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>vector</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetAlpha</key>
@@ -3793,14 +3793,14 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>string</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetAnimationList</key>
  <map>
   <key>return</key><string>list</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetAnimationOverride</key>
@@ -3819,7 +3819,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>list</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetBoundingBox</key>
@@ -4404,7 +4404,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>string</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llGetVel</key>
@@ -4420,14 +4420,14 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <key>llGiveInventory</key>
  <map>
   <key>arguments</key><array>
-   <map><key>destination</key><map><key>type</key><string>string</string></map></map>
+   <map><key>destination</key><map><key>type</key><string>key</string></map></map>
    <map><key>inventory</key><map><key>type</key><string>string</string></map></map>
   </array>
  </map>
  <key>llGiveInventoryList</key>
  <map>
   <key>arguments</key><array>
-   <map><key>destination</key><map><key>type</key><string>string</string></map></map>
+   <map><key>destination</key><map><key>type</key><string>key</string></map></map>
    <map><key>category</key><map><key>type</key><string>string</string></map></map>
    <map><key>inventory</key><map><key>type</key><string>list</string></map></map>
   </array>
@@ -4436,7 +4436,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>destination</key><map><key>type</key><string>string</string></map></map>
+   <map><key>destination</key><map><key>type</key><string>key</string></map></map>
    <map><key>amount</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
@@ -4559,7 +4559,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>string</string>
   <key>arguments</key><array>
-   <map><key>id</key><map><key>type</key><string>string</string></map></map>
+   <map><key>id</key><map><key>type</key><string>key</string></map></map>
   </array>
  </map>
  <key>llLinkParticleSystem</key>
@@ -6001,7 +6001,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>key</string>
   <key>arguments</key><array>
-   <map><key>destination</key><map><key>type</key><string>string</string></map></map>
+   <map><key>destination</key><map><key>type</key><string>key</string></map></map>
    <map><key>amount</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
@@ -6152,24 +6152,25 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>a</key><map><key>type</key><string>float</string></map></map>
-   <map><key>b</key><map><key>type</key><string>float</string></map></map>
+   <map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
+   <map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
+   <map><key>margin</key><map><key>type</key><string>float</string></map></map>
   </array>
  </map>
  <key>osApproxEquals</key>
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>va</key><map><key>type</key><string>vector</string></map></map>
-   <map><key>vb</key><map><key>type</key><string>vector</string></map></map>
+   <map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
+   <map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
   </array>
  </map>
  <key>osApproxEquals</key>
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>a</key><map><key>type</key><string>float</string></map></map>
-   <map><key>b</key><map><key>type</key><string>float</string></map></map>
+   <map><key>va</key><map><key>type</key><string>vector</string></map></map>
+   <map><key>vb</key><map><key>type</key><string>vector</string></map></map>
    <map><key>margin</key><map><key>type</key><string>float</string></map></map>
   </array>
  </map>
@@ -6177,16 +6178,16 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
-   <map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
+   <map><key>va</key><map><key>type</key><string>vector</string></map></map>
+   <map><key>vb</key><map><key>type</key><string>vector</string></map></map>
   </array>
  </map>
  <key>osApproxEquals</key>
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>ra</key><map><key>type</key><string>rotation</string></map></map>
-   <map><key>rb</key><map><key>type</key><string>rotation</string></map></map>
+   <map><key>a</key><map><key>type</key><string>float</string></map></map>
+   <map><key>b</key><map><key>type</key><string>float</string></map></map>
    <map><key>margin</key><map><key>type</key><string>float</string></map></map>
   </array>
  </map>
@@ -6194,9 +6195,8 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>return</key><string>integer</string>
   <key>arguments</key><array>
-   <map><key>va</key><map><key>type</key><string>vector</string></map></map>
-   <map><key>vb</key><map><key>type</key><string>vector</string></map></map>
-   <map><key>margin</key><map><key>type</key><string>float</string></map></map>
+   <map><key>a</key><map><key>type</key><string>float</string></map></map>
+   <map><key>b</key><map><key>type</key><string>float</string></map></map>
   </array>
  </map>
  <key>osAvatarName2Key</key>
@@ -6599,6 +6599,13 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
    <map><key>itemNameOrId</key><map><key>type</key><string>string</string></map></map>
   </array>
  </map>
+ <key>osGetInventoryItemKey</key>
+ <map>
+  <key>return</key><string>key</string>
+  <key>arguments</key><array>
+   <map><key>name</key><map><key>type</key><string>string</string></map></map>
+  </array>
+ </map>
  <key>osGetInventoryLastOwner</key>
  <map>
   <key>return</key><string>key</string>
@@ -6799,15 +6806,15 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <key>osKickAvatar</key>
  <map>
   <key>arguments</key><array>
-   <map><key>FirstName</key><map><key>type</key><string>string</string></map></map>
-   <map><key>SurName</key><map><key>type</key><string>string</string></map></map>
+   <map><key>agentId</key><map><key>type</key><string>key</string></map></map>
    <map><key>alert</key><map><key>type</key><string>string</string></map></map>
   </array>
  </map>
  <key>osKickAvatar</key>
  <map>
   <key>arguments</key><array>
-   <map><key>agentId</key><map><key>type</key><string>key</string></map></map>
+   <map><key>FirstName</key><map><key>type</key><string>string</string></map></map>
+   <map><key>SurName</key><map><key>type</key><string>string</string></map></map>
    <map><key>alert</key><map><key>type</key><string>string</string></map></map>
   </array>
  </map>
@@ -6925,7 +6932,6 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
    <map><key>name</key><map><key>type</key><string>string</string></map></map>
    <map><key>position</key><map><key>type</key><string>vector</string></map></map>
    <map><key>notecard</key><map><key>type</key><string>string</string></map></map>
-   <map><key>options</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
  <key>osNpcCreate</key>
@@ -6936,6 +6942,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
    <map><key>name</key><map><key>type</key><string>string</string></map></map>
    <map><key>position</key><map><key>type</key><string>vector</string></map></map>
    <map><key>notecard</key><map><key>type</key><string>string</string></map></map>
+   <map><key>options</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
  <key>osNpcGetOwner</key>
@@ -7006,6 +7013,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>arguments</key><array>
    <map><key>npc</key><map><key>type</key><string>key</string></map></map>
+   <map><key>channel</key><map><key>type</key><string>integer</string></map></map>
    <map><key>message</key><map><key>type</key><string>string</string></map></map>
   </array>
  </map>
@@ -7013,7 +7021,6 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>arguments</key><array>
    <map><key>npc</key><map><key>type</key><string>key</string></map></map>
-   <map><key>channel</key><map><key>type</key><string>integer</string></map></map>
    <map><key>message</key><map><key>type</key><string>string</string></map></map>
   </array>
  </map>
@@ -7406,6 +7413,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <key>osSetProjectionParams</key>
  <map>
   <key>arguments</key><array>
+   <map><key>prim</key><map><key>type</key><string>key</string></map></map>
    <map><key>projection</key><map><key>type</key><string>integer</string></map></map>
    <map><key>texture</key><map><key>type</key><string>key</string></map></map>
    <map><key>fov</key><map><key>type</key><string>float</string></map></map>
@@ -7427,7 +7435,6 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <key>osSetProjectionParams</key>
  <map>
   <key>arguments</key><array>
-   <map><key>prim</key><map><key>type</key><string>key</string></map></map>
    <map><key>projection</key><map><key>type</key><string>integer</string></map></map>
    <map><key>texture</key><map><key>type</key><string>key</string></map></map>
    <map><key>fov</key><map><key>type</key><string>float</string></map></map>
@@ -7596,6 +7603,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
   <key>arguments</key><array>
    <map><key>src</key><map><key>type</key><string>string</string></map></map>
    <map><key>start</key><map><key>type</key><string>integer</string></map></map>
+   <map><key>length</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
  <key>osStringSubString</key>
@@ -7604,7 +7612,6 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
   <key>arguments</key><array>
    <map><key>src</key><map><key>type</key><string>string</string></map></map>
    <map><key>start</key><map><key>type</key><string>integer</string></map></map>
-   <map><key>length</key><map><key>type</key><string>integer</string></map></map>
   </array>
  </map>
  <key>osSunGetParam</key>
@@ -7625,7 +7632,8 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>arguments</key><array>
    <map><key>agent</key><map><key>type</key><string>string</string></map></map>
-   <map><key>regionName</key><map><key>type</key><string>string</string></map></map>
+   <map><key>regionX</key><map><key>type</key><string>integer</string></map></map>
+   <map><key>regionY</key><map><key>type</key><string>integer</string></map></map>
    <map><key>position</key><map><key>type</key><string>vector</string></map></map>
    <map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
   </array>
@@ -7634,8 +7642,6 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>arguments</key><array>
    <map><key>agent</key><map><key>type</key><string>string</string></map></map>
-   <map><key>regionX</key><map><key>type</key><string>integer</string></map></map>
-   <map><key>regionY</key><map><key>type</key><string>integer</string></map></map>
    <map><key>position</key><map><key>type</key><string>vector</string></map></map>
    <map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
   </array>
@@ -7644,6 +7650,7 @@ d2556181-baf5-e5b9-c8ec-99eda597b9f6
  <map>
   <key>arguments</key><array>
    <map><key>agent</key><map><key>type</key><string>string</string></map></map>
+   <map><key>regionName</key><map><key>type</key><string>string</string></map></map>
    <map><key>position</key><map><key>type</key><string>vector</string></map></map>
    <map><key>lookat</key><map><key>type</key><string>vector</string></map></map>
   </array>
ViewGit