aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs45
1 files changed, 21 insertions, 24 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index a173d64..fce09bf 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -9058,38 +9058,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
9058 return -1; 9058 return -1;
9059 } 9059 }
9060 9060
9061 public void llSetInventoryPermMask(string item, int mask, int value) 9061 public void llSetInventoryPermMask(string itemName, int mask, int value)
9062 { 9062 {
9063 m_host.AddScriptLPS(1); 9063 m_host.AddScriptLPS(1);
9064
9064 if (m_ScriptEngine.Config.GetBoolean("AllowGodFunctions", false)) 9065 if (m_ScriptEngine.Config.GetBoolean("AllowGodFunctions", false))
9065 { 9066 {
9066 if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID)) 9067 if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID))
9067 { 9068 {
9068 lock (m_host.TaskInventory) 9069 TaskInventoryItem item = m_host.Inventory.GetInventoryItem(itemName);
9070
9071 if (item != null)
9069 { 9072 {
9070 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 9073 switch (mask)
9071 { 9074 {
9072 if (inv.Value.Name == item) 9075 case 0:
9073 { 9076 item.BasePermissions = (uint)value;
9074 switch (mask) 9077 break;
9075 { 9078 case 1:
9076 case 0: 9079 item.CurrentPermissions = (uint)value;
9077 inv.Value.BasePermissions = (uint)value; 9080 break;
9078 break; 9081 case 2:
9079 case 1: 9082 item.GroupPermissions = (uint)value;
9080 inv.Value.CurrentPermissions = (uint)value; 9083 break;
9081 break; 9084 case 3:
9082 case 2: 9085 item.EveryonePermissions = (uint)value;
9083 inv.Value.GroupPermissions = (uint)value; 9086 break;
9084 break; 9087 case 4:
9085 case 3: 9088 item.NextPermissions = (uint)value;
9086 inv.Value.EveryonePermissions = (uint)value; 9089 break;
9087 break;
9088 case 4:
9089 inv.Value.NextPermissions = (uint)value;
9090 break;
9091 }
9092 }
9093 } 9090 }
9094 } 9091 }
9095 } 9092 }