diff --git a/OpenMetaverse.Tests/MessageTests.cs b/OpenMetaverse.Tests/MessageTests.cs index 55375ac4..5cca832b 100644 --- a/OpenMetaverse.Tests/MessageTests.cs +++ b/OpenMetaverse.Tests/MessageTests.cs @@ -150,28 +150,28 @@ namespace OpenMetaverse.Tests [Test] public void ParcelObjectOwnersMessage() { - ParcelObjectOwnersMessage s = new ParcelObjectOwnersMessage(); - s.DataBlocks = new ParcelObjectOwnersMessage.PrimOwners[2]; + ParcelObjectOwnersReplyMessage s = new ParcelObjectOwnersReplyMessage(); + s.DataBlocks = new ParcelObjectOwnersReplyMessage.PrimOwners[2]; - ParcelObjectOwnersMessage.PrimOwners obj = new ParcelObjectOwnersMessage.PrimOwners(); + ParcelObjectOwnersReplyMessage.PrimOwners obj = new ParcelObjectOwnersReplyMessage.PrimOwners(); obj.OwnerID = UUID.Random(); obj.Count = 10; obj.IsGroupOwned = true; obj.OnlineStatus = false; - obj.TimeStamp = DateTime.UtcNow; + obj.TimeStamp = new DateTime(2010, 4, 13, 7, 19, 43); s.DataBlocks[0] = obj; - ParcelObjectOwnersMessage.PrimOwners obj1 = new ParcelObjectOwnersMessage.PrimOwners(); + ParcelObjectOwnersReplyMessage.PrimOwners obj1 = new ParcelObjectOwnersReplyMessage.PrimOwners(); obj1.OwnerID = UUID.Random(); obj1.Count = 0; obj1.IsGroupOwned = false; obj1.OnlineStatus = false; - obj1.TimeStamp = DateTime.UtcNow; + obj1.TimeStamp = new DateTime(1991, 1, 31, 3, 13, 31); s.DataBlocks[1] = obj1; OSDMap map = s.Serialize(); - ParcelObjectOwnersMessage t = new ParcelObjectOwnersMessage(); + ParcelObjectOwnersReplyMessage t = new ParcelObjectOwnersReplyMessage(); t.Deserialize(map); for (int i = 0; i < t.DataBlocks.Length; i++) diff --git a/OpenMetaverse/Messages/LindenMessages.cs b/OpenMetaverse/Messages/LindenMessages.cs index 53af92ec..47e784f7 100644 --- a/OpenMetaverse/Messages/LindenMessages.cs +++ b/OpenMetaverse/Messages/LindenMessages.cs @@ -373,7 +373,7 @@ namespace OpenMetaverse.Messages.Linden /// If agent does not have proper permission OR there are no primitives on parcel /// the DataBlocksExtended map will not be sent from the simulator /// - public class ParcelObjectOwnersMessage : IMessage + public class ParcelObjectOwnersReplyMessage : IMessage { /// /// Prim ownership information for a specified owner on a single parcel @@ -472,7 +472,7 @@ namespace OpenMetaverse.Messages.Linden if (dataExtendedArray.Count == dataArray.Count) { OSDMap dataExtendedMap = (OSDMap)dataExtendedArray[i]; - block.TimeStamp = dataExtendedMap["TimeStamp"].AsDate(); + block.TimeStamp = Utils.UnixTimeToDateTime(dataExtendedMap["TimeStamp"].AsUInteger()); } DataBlocks[i] = block; @@ -634,7 +634,8 @@ namespace OpenMetaverse.Messages.Linden parcelDataMap["ClaimDate"] = OSD.FromDate(ClaimDate); parcelDataMap["ClaimPrice"] = OSD.FromInteger(ClaimPrice); parcelDataMap["Desc"] = OSD.FromString(Desc); - parcelDataMap["ParcelFlags"] = OSD.FromLong((long)ParcelFlags); // verify this! + //parcelDataMap["ParcelFlags"] = OSD.FromLong((long)ParcelFlags); // verify this! + parcelDataMap["ParcelFlags"] = OSD.FromUInteger((uint)ParcelFlags); parcelDataMap["GroupID"] = OSD.FromUUID(GroupID); parcelDataMap["GroupPrims"] = OSD.FromInteger(GroupPrims); parcelDataMap["IsGroupOwned"] = OSD.FromBoolean(IsGroupOwned); @@ -719,9 +720,8 @@ namespace OpenMetaverse.Messages.Linden } else { - ParcelFlags = (ParcelFlags)parcelDataMap["ParcelFlags"].AsUInteger(); // verify this! + ParcelFlags = (ParcelFlags)parcelDataMap["ParcelFlags"].AsUInteger(); } - GroupID = parcelDataMap["GroupID"].AsUUID(); GroupPrims = parcelDataMap["GroupPrims"].AsInteger(); IsGroupOwned = parcelDataMap["IsGroupOwned"].AsBoolean(); @@ -820,7 +820,7 @@ namespace OpenMetaverse.Messages.Linden Name = map["name"].AsString(); ObscureMedia = map["obscure_media"].AsBoolean(); ObscureMusic = map["obscure_music"].AsBoolean(); - ParcelFlags = (ParcelFlags)map["parcel_flags"].AsInteger(); + ParcelFlags = (ParcelFlags)map["parcel_flags"].AsUInteger(); PassHours = (float)map["pass_hours"].AsReal(); PassPrice = map["pass_price"].AsUInteger(); SalePrice = map["sale_price"].AsUInteger(); @@ -851,8 +851,7 @@ namespace OpenMetaverse.Messages.Linden map["name"] = OSD.FromString(Name); map["obscure_media"] = OSD.FromBoolean(ObscureMedia); map["obscure_music"] = OSD.FromBoolean(ObscureMusic); - // is this endian correct? - map["parcel_flags"] = OSD.FromInteger((int)ParcelFlags); + map["parcel_flags"] = OSD.FromUInteger((uint)ParcelFlags); map["pass_hours"] = OSD.FromReal(PassHours); map["pass_price"] = OSD.FromInteger(PassPrice); map["sale_price"] = OSD.FromInteger(SalePrice); @@ -1837,7 +1836,7 @@ namespace OpenMetaverse.Messages.Linden agentMap["regions_visited"] = OSD.FromInteger(RegionsVisited); agentMap["run_time"] = OSD.FromReal(AgentRuntime); agentMap["sim_fps"] = OSD.FromReal(SimulatorFPS); - agentMap["start_time"] = OSD.FromDate(AgentStartTime); + agentMap["start_time"] = OSD.FromUInteger(Utils.DateTimeToUnixTime(AgentStartTime)); agentMap["version"] = OSD.FromString(AgentVersion); map["agent"] = agentMap; @@ -1918,7 +1917,7 @@ namespace OpenMetaverse.Messages.Linden RegionsVisited = agentMap["regions_visited"].AsInteger(); AgentRuntime = (float)agentMap["run_time"].AsReal(); SimulatorFPS = (float)agentMap["sim_fps"].AsReal(); - AgentStartTime = Utils.UnixTimeToDateTime((uint)agentMap["start_time"].AsReal()); + AgentStartTime = Utils.UnixTimeToDateTime(agentMap["start_time"].AsUInteger()); AgentVersion = agentMap["version"].AsString(); OSDMap downloadsMap = (OSDMap)map["downloads"]; diff --git a/OpenMetaverse/Messages/MessageEventDecoder.cs b/OpenMetaverse/Messages/MessageEventDecoder.cs index 929386f5..8ffc3611 100644 --- a/OpenMetaverse/Messages/MessageEventDecoder.cs +++ b/OpenMetaverse/Messages/MessageEventDecoder.cs @@ -51,7 +51,7 @@ namespace OpenMetaverse { case "AgentGroupDataUpdate": message = new AgentGroupDataUpdateMessage(); break; case "ParcelProperties": message = new ParcelPropertiesMessage(); break; - case "ParcelObjectOwnersReply": message = new ParcelObjectOwnersMessage(); break; + case "ParcelObjectOwnersReply": message = new ParcelObjectOwnersReplyMessage(); break; case "TeleportFinish": message = new TeleportFinishMessage(); break; case "EnableSimulator": message = new EnableSimulatorMessage(); break; case "ParcelPropertiesUpdate": message = new ParcelPropertiesUpdateMessage(); break; diff --git a/OpenMetaverse/ParcelManager.cs b/OpenMetaverse/ParcelManager.cs index ee481bea..ec5b487c 100644 --- a/OpenMetaverse/ParcelManager.cs +++ b/OpenMetaverse/ParcelManager.cs @@ -1696,7 +1696,7 @@ namespace OpenMetaverse { List primOwners = new List(); - ParcelObjectOwnersMessage msg = (ParcelObjectOwnersMessage)message; + ParcelObjectOwnersReplyMessage msg = (ParcelObjectOwnersReplyMessage)message; for (int i = 0; i < msg.DataBlocks.Length; i++) {