aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs103
1 files changed, 53 insertions, 50 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index bd14a13..d5225f7 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -962,55 +962,58 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
962 } 962 }
963 963
964 964
965 public void osMakeNotecard(string notecardName, LSL_Types.list contents) 965 // This needs ThreatLevel high. It is an excellent griefer tool,
966 { 966 // In a loop, it can cause asset bloat and DOS levels of asset
967 CheckThreatLevel(ThreatLevel.None, "osMakeNotecard"); 967 // writes.
968 m_host.AddScriptLPS(1); 968 //
969 969 public void osMakeNotecard(string notecardName, LSL_Types.list contents)
970 // Create new asset 970 {
971 AssetBase asset = new AssetBase(); 971 CheckThreatLevel(ThreatLevel.High, "osMakeNotecard");
972 asset.Name = notecardName; 972 m_host.AddScriptLPS(1);
973 asset.Description = "Script Generated Notecard"; 973
974 asset.Type = 7; 974 // Create new asset
975 asset.FullID = UUID.Random(); 975 AssetBase asset = new AssetBase();
976 string notecardData = ""; 976 asset.Name = notecardName;
977 977 asset.Description = "Script Generated Notecard";
978 for (int i = 0; i < contents.Length; i++) { 978 asset.Type = 7;
979 notecardData += contents.GetLSLStringItem(i) + "\n"; 979 asset.FullID = UUID.Random();
980 } 980 string notecardData = "";
981 981
982 int textLength = notecardData.Length; 982 for (int i = 0; i < contents.Length; i++) {
983 notecardData = "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length " 983 notecardData += contents.GetLSLStringItem(i) + "\n";
984 + textLength.ToString() + "\n" + notecardData + "}\n"; 984 }
985 985
986 asset.Data = Encoding.ASCII.GetBytes(notecardData); 986 int textLength = notecardData.Length;
987 World.AssetCache.AddAsset(asset); 987 notecardData = "Linden text version 2\n{\nLLEmbeddedItems version 1\n{\ncount 0\n}\nText length "
988 988 + textLength.ToString() + "\n" + notecardData + "}\n";
989 // Create Task Entry 989
990 TaskInventoryItem taskItem=new TaskInventoryItem(); 990 asset.Data = Encoding.ASCII.GetBytes(notecardData);
991 991 World.AssetCache.AddAsset(asset);
992 taskItem.ResetIDs(m_host.UUID); 992
993 taskItem.ParentID = m_host.UUID; 993 // Create Task Entry
994 taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch(); 994 TaskInventoryItem taskItem=new TaskInventoryItem();
995 taskItem.Name = asset.Name; 995
996 taskItem.Description = asset.Description; 996 taskItem.ResetIDs(m_host.UUID);
997 taskItem.Type = 7; 997 taskItem.ParentID = m_host.UUID;
998 taskItem.InvType = 7; 998 taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch();
999 taskItem.OwnerID = m_host.OwnerID; 999 taskItem.Name = asset.Name;
1000 taskItem.CreatorID = m_host.OwnerID; 1000 taskItem.Description = asset.Description;
1001 taskItem.BasePermissions = (uint)PermissionMask.All; 1001 taskItem.Type = 7;
1002 taskItem.CurrentPermissions = (uint)PermissionMask.All; 1002 taskItem.InvType = 7;
1003 taskItem.EveryonePermissions = (uint)PermissionMask.All; 1003 taskItem.OwnerID = m_host.OwnerID;
1004 taskItem.NextPermissions = (uint)PermissionMask.All; 1004 taskItem.CreatorID = m_host.OwnerID;
1005 taskItem.GroupID = m_host.GroupID; 1005 taskItem.BasePermissions = (uint)PermissionMask.All;
1006 taskItem.GroupPermissions = 0; 1006 taskItem.CurrentPermissions = (uint)PermissionMask.All;
1007 taskItem.Flags = 0; 1007 taskItem.EveryonePermissions = 0;
1008 taskItem.PermsGranter = UUID.Zero; 1008 taskItem.NextPermissions = (uint)PermissionMask.All;
1009 taskItem.PermsMask = 0; 1009 taskItem.GroupID = m_host.GroupID;
1010 taskItem.AssetID = asset.FullID; 1010 taskItem.GroupPermissions = 0;
1011 1011 taskItem.Flags = 0;
1012 m_host.AddInventoryItem(taskItem); 1012 taskItem.PermsGranter = UUID.Zero;
1013 1013 taskItem.PermsMask = 0;
1014 } 1014 taskItem.AssetID = asset.FullID;
1015
1016 m_host.AddInventoryItem(taskItem);
1017 }
1015 } 1018 }
1016} 1019}