aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMW2007-08-14 19:19:09 +0000
committerMW2007-08-14 19:19:09 +0000
commita979808493b20362ab3fe06ac68e5370622ceafa (patch)
treeb3e2b6bd5b6bd30e7331b15630fd50b8765e0d5f /OpenSim/Region
parentkrinkec's updates to ll* interface and functions (diff)
downloadopensim-SC_OLD-a979808493b20362ab3fe06ac68e5370622ceafa.zip
opensim-SC_OLD-a979808493b20362ab3fe06ac68e5370622ceafa.tar.gz
opensim-SC_OLD-a979808493b20362ab3fe06ac68e5370622ceafa.tar.bz2
opensim-SC_OLD-a979808493b20362ab3fe06ac68e5370622ceafa.tar.xz
preliminary support for editing notecards and scripts.
Although there seems to sometimes be a problem of when you login again, old notecards and scripts will have their permissions messed up and you won't be able to even view their text. This seems to be related to the client's cache, and if you clear your client's cache, on the next login they should be fine again. [I have a couple of ideas about what might be causing this so hopefully will have it fixed soon.]
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs9
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs45
2 files changed, 43 insertions, 11 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index e61a5bd..bba0138 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -732,15 +732,6 @@ namespace OpenSim.Region.Environment.Scenes
732 } 732 }
733 } 733 }
734 734
735 /// <summary>
736 /// Sends prims to a client
737 /// </summary>
738 /// <param name="RemoteClient">Client to send to</param>
739 public void GetInitialPrims(IClientAPI RemoteClient)
740 {
741
742 }
743
744 public void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient) 735 public void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
745 { 736 {
746 this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient); 737 this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient);
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 73133d4..bfc3ee8 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -827,6 +827,7 @@ namespace OpenSim.Region.Environment.Scenes
827 agent.CapsPath, agent.AgentID); 827 agent.CapsPath, agent.AgentID);
828 cap.RegisterHandlers(); 828 cap.RegisterHandlers();
829 cap.AddNewInventoryItem = this.AddInventoryItem; 829 cap.AddNewInventoryItem = this.AddInventoryItem;
830 cap.ItemUpdatedCall = this.UpdateInventoryItemAsset;
830 if (capsHandlers.ContainsKey(agent.AgentID)) 831 if (capsHandlers.ContainsKey(agent.AgentID))
831 { 832 {
832 MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + 833 MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " +
@@ -1023,7 +1024,7 @@ namespace OpenSim.Region.Environment.Scenes
1023 { 1024 {
1024 ScriptEngines.Add(ScriptEngine); 1025 ScriptEngines.Add(ScriptEngine);
1025 1026
1026 ScriptEngine.InitializeEngine(this, m_logger); 1027 ScriptEngine.InitializeEngine(this, m_logger);
1027 } 1028 }
1028 #endregion 1029 #endregion
1029 1030
@@ -1046,7 +1047,7 @@ namespace OpenSim.Region.Environment.Scenes
1046 1047
1047 public void AddInventoryItem(LLUUID userID, InventoryItemBase item) 1048 public void AddInventoryItem(LLUUID userID, InventoryItemBase item)
1048 { 1049 {
1049 if(this.Avatars.ContainsKey(userID)) 1050 if (this.Avatars.ContainsKey(userID))
1050 { 1051 {
1051 this.AddInventoryItem(this.Avatars[userID].ControllingClient, item); 1052 this.AddInventoryItem(this.Avatars[userID].ControllingClient, item);
1052 } 1053 }
@@ -1062,5 +1063,45 @@ namespace OpenSim.Region.Environment.Scenes
1062 } 1063 }
1063 } 1064 }
1064 1065
1066 public LLUUID UpdateInventoryItemAsset(LLUUID userID, LLUUID itemID, byte[] data)
1067 {
1068 if (this.Avatars.ContainsKey(userID))
1069 {
1070 return this.UpdateInventoryItemAsset(this.Avatars[userID].ControllingClient, itemID, data);
1071 }
1072 return LLUUID.Zero;
1073 }
1074
1075 public LLUUID UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID itemID, byte[] data)
1076 {
1077 CachedUserInfo userInfo = commsManager.UserProfiles.GetUserDetails(remoteClient.AgentId);
1078 if (userInfo != null)
1079 {
1080 if (userInfo.RootFolder != null)
1081 {
1082 InventoryItemBase item = userInfo.RootFolder.HasItem(itemID);
1083 if (item != null)
1084 {
1085 AssetBase asset;
1086 asset = new AssetBase();
1087 asset.FullID = LLUUID.Random();
1088 asset.Type = (sbyte)item.assetType;
1089 asset.InvType = (sbyte)item.invType;
1090 asset.Name = item.inventoryName;
1091 asset.Data = data;
1092 this.assetCache.AddAsset(asset);
1093
1094 item.assetID = asset.FullID;
1095 userInfo.updateItem(remoteClient.AgentId, item);
1096
1097 remoteClient.SendInventoryItemUpdate(item);
1098
1099 return (asset.FullID);
1100 }
1101 }
1102 }
1103 return LLUUID.Zero;
1104 }
1105
1065 } 1106 }
1066} 1107}