Allow JsonReadNotecard() to accept the name of the notecard as well as the asset ID.
Agreed in discussion with cmickeyb. This is to make this consistent with similar existing LSL/OSSL functions such as llTriggerSound() and osNpcLoadAppearance() that allow an item name or an asset id.0.7.4-extended
							parent
							
								
									87d50974f8
								
							
						
					
					
						commit
						eab1b1b9f8
					
				|  | @ -39,6 +39,7 @@ using OpenMetaverse.StructuredData; | ||||||
| using OpenSim.Framework; | using OpenSim.Framework; | ||||||
| using OpenSim.Region.Framework.Interfaces; | using OpenSim.Region.Framework.Interfaces; | ||||||
| using OpenSim.Region.Framework.Scenes; | using OpenSim.Region.Framework.Scenes; | ||||||
|  | using OpenSim.Region.Framework.Scenes.Scripting; | ||||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||||
| using System.Text.RegularExpressions; | using System.Text.RegularExpressions; | ||||||
| 
 | 
 | ||||||
|  | @ -256,10 +257,10 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         // ----------------------------------------------------------------- |         // ----------------------------------------------------------------- | ||||||
|         [ScriptInvocation] |         [ScriptInvocation] | ||||||
|         public UUID JsonReadNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, UUID assetID) |         public UUID JsonReadNotecard(UUID hostID, UUID scriptID, UUID storeID, string path, string notecardIdentifier) | ||||||
|         { |         { | ||||||
|             UUID reqID = UUID.Random(); |             UUID reqID = UUID.Random(); | ||||||
|             Util.FireAndForget(delegate(object o) { DoJsonReadNotecard(reqID,hostID,scriptID,storeID,path,assetID); }); |             Util.FireAndForget(o => DoJsonReadNotecard(reqID, hostID, scriptID, storeID, path, notecardIdentifier)); | ||||||
|             return reqID; |             return reqID; | ||||||
|         } |         } | ||||||
|          |          | ||||||
|  | @ -463,14 +464,23 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | ||||||
|         ///  |         ///  | ||||||
|         /// </summary> |         /// </summary> | ||||||
|         // ----------------------------------------------------------------- |         // ----------------------------------------------------------------- | ||||||
|         private void DoJsonReadNotecard(UUID reqID, UUID hostID, UUID scriptID, UUID storeID, string path, UUID assetID) |         private void DoJsonReadNotecard( | ||||||
|  |             UUID reqID, UUID hostID, UUID scriptID, UUID storeID, string path, string notecardIdentifier) | ||||||
|         { |         { | ||||||
|  |             UUID assetID; | ||||||
|  | 
 | ||||||
|  |             if (!UUID.TryParse(notecardIdentifier, out assetID)) | ||||||
|  |             { | ||||||
|  |                 SceneObjectPart part = m_scene.GetSceneObjectPart(hostID);                | ||||||
|  |                 assetID = ScriptUtils.GetAssetIdFromItemName(part, notecardIdentifier, (int)AssetType.Notecard); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             AssetBase a = m_scene.AssetService.Get(assetID.ToString()); |             AssetBase a = m_scene.AssetService.Get(assetID.ToString()); | ||||||
|             if (a == null) |             if (a == null) | ||||||
|                 GenerateRuntimeError(String.Format("Unable to find notecard asset {0}",assetID)); |                 GenerateRuntimeError(String.Format("Unable to find notecard asset {0}", assetID)); | ||||||
| 
 | 
 | ||||||
|             if (a.Type != (sbyte)AssetType.Notecard) |             if (a.Type != (sbyte)AssetType.Notecard) | ||||||
|                 GenerateRuntimeError(String.Format("Invalid notecard asset {0}",assetID)); |                 GenerateRuntimeError(String.Format("Invalid notecard asset {0}", assetID)); | ||||||
|              |              | ||||||
|             m_log.DebugFormat("[JsonStoreScripts]: read notecard in context {0}",storeID); |             m_log.DebugFormat("[JsonStoreScripts]: read notecard in context {0}",storeID); | ||||||
| 
 | 
 | ||||||
|  | @ -483,11 +493,11 @@ namespace OpenSim.Region.OptionalModules.Scripting.JsonStore | ||||||
|             } |             } | ||||||
|             catch (Exception e) |             catch (Exception e) | ||||||
|             { |             { | ||||||
|                 m_log.WarnFormat("[JsonStoreScripts]: Json parsing failed; {0}",e.Message); |                 m_log.WarnFormat("[JsonStoreScripts]: Json parsing failed; {0}", e.Message); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             GenerateRuntimeError(String.Format("Json parsing failed for {0}",assetID.ToString())); |             GenerateRuntimeError(String.Format("Json parsing failed for {0}", assetID)); | ||||||
|             m_comms.DispatchReply(scriptID,0,"",reqID.ToString()); |             m_comms.DispatchReply(scriptID, 0, "", reqID.ToString()); | ||||||
|         } |         } | ||||||
|              |              | ||||||
|         // ----------------------------------------------------------------- |         // ----------------------------------------------------------------- | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Justin Clark-Casey (justincc)
						Justin Clark-Casey (justincc)