diff --git a/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs b/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs index ce033ad1b0..c6b15d5614 100644 --- a/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs @@ -1637,9 +1637,9 @@ namespace OpenSim.Region.ScriptEngine.Common m_LSL_Functions.llSetObjectPermMask(mask, value); } - public void llGetInventoryPermMask(string item, int mask) + public int llGetInventoryPermMask(string item, int mask) { - m_LSL_Functions.llGetInventoryPermMask(item, mask); + return m_LSL_Functions.llGetInventoryPermMask(item, mask); } public void llSetInventoryPermMask(string item, int mask, int value) diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index f66bfe4220..499445a72e 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs @@ -4113,10 +4113,30 @@ namespace OpenSim.Region.ScriptEngine.Common } } - public void llGetInventoryPermMask(string item, int mask) + public int llGetInventoryPermMask(string item, int mask) { m_host.AddScriptLPS(1); - NotImplemented("llGetInventoryPermMask"); + foreach (KeyValuePair inv in m_host.TaskInventory) + { + if (inv.Value.Name == item) + { + switch (mask) + { + case 0: + return (int)inv.Value.BaseMask; + case 1: + return (int)inv.Value.OwnerMask; + case 2: + return (int)inv.Value.GroupMask; + case 3: + return (int)inv.Value.EveryoneMask; + case 4: + return (int)inv.Value.NextOwnerMask; + } + } + } + return -1; + //NotImplemented("llGetInventoryPermMask"); } public void llSetInventoryPermMask(string item, int mask, int value) diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs index c8b02da2ce..baa07ba47b 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs @@ -560,7 +560,7 @@ namespace OpenSim.Region.ScriptEngine.Common //wiki: llSetObjectPermMask(integer mask, integer value) void llSetObjectPermMask(int mask, int value); //wiki integer llGetInventoryPermMask(string item, integer mask) - void llGetInventoryPermMask(string item, int mask); + int llGetInventoryPermMask(string item, int mask); //wiki: llSetInventoryPermMask(string item, integer mask, integer value) void llSetInventoryPermMask(string item, int mask, int value); //wiki: key llGetInventoryCreator(string item)