From 5f785e9dfcb17a7ddc81dc87a91ddd5a1ebed6d1 Mon Sep 17 00:00:00 2001 From: Jim Radford Date: Sat, 18 Apr 2009 05:57:46 +0000 Subject: [PATCH] LIBOMV-477 Adds UpdateScriptAgentMessage and UpdateScriptTaskMessage to the messaging system for uploading scripts to an agents inventory and a prims task inventory respectively, Tests Included git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2628 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse.Tests/MessageTests.cs | 35 ++++++++++++ OpenMetaverse/Messages/LindenMessages.cs | 54 ++++++++++++++++++- OpenMetaverse/Messages/MessageEventDecoder.cs | 3 +- 3 files changed, 89 insertions(+), 3 deletions(-) diff --git a/OpenMetaverse.Tests/MessageTests.cs b/OpenMetaverse.Tests/MessageTests.cs index 47bd590e..e46db319 100644 --- a/OpenMetaverse.Tests/MessageTests.cs +++ b/OpenMetaverse.Tests/MessageTests.cs @@ -831,6 +831,41 @@ namespace OpenMetaverse.Tests Assert.AreEqual(s.ParcelID, t.ParcelID); } + + [Test] + public void UpdateScriptTaskMessage() + { + UpdateScriptTaskMessage s = new UpdateScriptTaskMessage(); + s.TaskID = UUID.Random(); + s.Target = "mono"; + s.ScriptRunning = true; + s.ItemID = UUID.Random(); + + OSDMap map = s.Serialize(); + UpdateScriptTaskMessage t = new UpdateScriptTaskMessage(); + t.Deserialize(map); + + Assert.AreEqual(s.ItemID, t.ItemID); + Assert.AreEqual(s.ScriptRunning, t.ScriptRunning); + Assert.AreEqual(s.Target, t.Target); + Assert.AreEqual(s.TaskID, t.TaskID); + } + + [Test] + public void UpdateScriptAgentMessage() + { + UpdateScriptAgentMessage s = new UpdateScriptAgentMessage(); + s.ItemID = UUID.Random(); + s.Target = "lsl2"; + + OSDMap map = s.Serialize(); + + UpdateScriptAgentMessage t = new UpdateScriptAgentMessage(); + t.Deserialize(map); + + Assert.AreEqual(s.ItemID, t.ItemID); + Assert.AreEqual(s.Target, t.Target); + } } } diff --git a/OpenMetaverse/Messages/LindenMessages.cs b/OpenMetaverse/Messages/LindenMessages.cs index 54c4a416..6399b304 100644 --- a/OpenMetaverse/Messages/LindenMessages.cs +++ b/OpenMetaverse/Messages/LindenMessages.cs @@ -825,7 +825,7 @@ namespace OpenMetaverse.Messages.Linden group["GroupInsigniaID"] = OSD.FromUUID(GroupDataBlock[i].GroupInsigniaID); group["GroupName"] = OSD.FromString(GroupDataBlock[i].GroupName); group["GroupPowers"] = OSD.FromBinary((ulong)GroupDataBlock[i].GroupPowers); - + groupDataArray.Add(group); OSDMap newDataMap = new OSDMap(1); @@ -862,7 +862,7 @@ namespace OpenMetaverse.Messages.Linden groupData.GroupInsigniaID = groupMap["GroupInsigniaID"].AsUUID(); groupData.GroupName = groupMap["GroupName"].AsString(); groupData.GroupPowers = (GroupPowers)groupMap["GroupPowers"].AsLong(); - + groupData.AcceptNotices = groupMap["AcceptNotices"].AsBoolean(); OSDMap newGroupDataMap = (OSDMap)newGroupDataArray[i]; @@ -1132,6 +1132,56 @@ namespace OpenMetaverse.Messages.Linden } } + /// + /// Request sent by client to update a script inside a tasks inventory + /// + public class UpdateScriptTaskMessage : IMessage + { + public bool ScriptRunning; + public UUID ItemID; + public string Target; // mono or lsl2 + public UUID TaskID; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(4); + map["is_script_running"] = OSD.FromBoolean(ScriptRunning); + map["item_id"] = OSD.FromUUID(ItemID); + map["target"] = OSD.FromString(Target); + map["task_id"] = OSD.FromUUID(TaskID); + return map; + } + + public void Deserialize(OSDMap map) + { + ScriptRunning = map["is_script_running"].AsBoolean(); + ItemID = map["item_id"].AsUUID(); + Target = map["target"].AsString(); + TaskID = map["task_id"].AsUUID(); + } + } + + public class UpdateScriptAgentMessage : IMessage + { + public UUID ItemID; + public string Target; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(2); + map["item_id"] = OSD.FromUUID(ItemID); + map["target"] = OSD.FromString(Target); + return map; + } + + public void Deserialize(OSDMap map) + { + ItemID = map["item_id"].AsUUID(); + Target = map["target"].AsString(); + } + + } + #endregion #region Grid/Maps diff --git a/OpenMetaverse/Messages/MessageEventDecoder.cs b/OpenMetaverse/Messages/MessageEventDecoder.cs index a70db2a0..97bb9ff3 100644 --- a/OpenMetaverse/Messages/MessageEventDecoder.cs +++ b/OpenMetaverse/Messages/MessageEventDecoder.cs @@ -68,6 +68,8 @@ namespace OpenMetaverse case "Viewerstats": message = new ViewerStatsMessage(); break; case "UpdateAgentLanguage": message = new UpdateAgentLanguageMessage(); break; case "RemoteParcelRequest": message = new RemoteParcelRequestMessage(); break; + case "UpdateScriptTask": message = new UpdateScriptTaskMessage(); break; + case "UpdateScriptAgent": message = new UpdateScriptAgentMessage(); break; // Capabilities TODO: // DispatchRegionInfo @@ -87,7 +89,6 @@ namespace OpenMetaverse // StartGroupProposal // UpdateGestureAgentInventory // UpdateNotecardAgentInventory - // UpdateScriptAgent // UpdateGestureTaskInventory // UpdateNotecardTaskInventory // ViewerStartAuction