diff --git a/OpenMetaverse/Login.cs b/OpenMetaverse/Login.cs index 3434f66a..b1d5df64 100644 --- a/OpenMetaverse/Login.cs +++ b/OpenMetaverse/Login.cs @@ -243,7 +243,7 @@ namespace OpenMetaverse // event_categories (TODO) WriteXmlRpcArrayStart(writer, "event_categories"); - WriteXmlRpcCategory(writer, "Default", 20); + WriteXmlRpcCategory(writer, "Default Event Category", 20); WriteXmlRpcArrayEnd(writer); // tutorial_setting (TODO) @@ -253,7 +253,7 @@ namespace OpenMetaverse // classified_categories (TODO) WriteXmlRpcArrayStart(writer, "classified_categories"); - WriteXmlRpcCategory(writer, "Default", 1); + WriteXmlRpcCategory(writer, "Default Classified Category", 1); WriteXmlRpcArrayEnd(writer); // inventory-root @@ -285,7 +285,15 @@ namespace OpenMetaverse // buddy-list WriteXmlRpcArrayStart(writer, "buddy-list"); - WriteXmlRpcBuddy(writer, 0, 0, UUID.Random()); + if (BuddyList != null) + { + foreach (FriendInfo friend in BuddyList) + WriteXmlRpcBuddy(writer, (uint)friend.MyFriendRights, (uint)friend.TheirFriendRights, friend.UUID); + } + else + { + //WriteXmlRpcBuddy(writer, 0, 0, UUID.Random()); + } WriteXmlRpcArrayEnd(writer); // first_name @@ -306,7 +314,15 @@ namespace OpenMetaverse // inventory-skel-lib WriteXmlRpcArrayStart(writer, "inventory-skel-lib"); - WriteXmlRpcInventoryItem(writer, "Library", UUID.Zero, 1, (uint)InventoryType.Category, LibraryRoot); + if (LibrarySkeleton != null) + { + foreach (InventoryFolder folder in LibrarySkeleton) + WriteXmlRpcInventoryItem(writer, folder.Name, folder.ParentUUID, (uint)folder.Version, (uint)folder.PreferredType, folder.UUID); + } + else + { + WriteXmlRpcInventoryItem(writer, "Library", UUID.Zero, 1, (uint)InventoryType.Category, LibraryRoot); + } WriteXmlRpcArrayEnd(writer); // seed_capability @@ -346,14 +362,13 @@ namespace OpenMetaverse WriteXmlRpcStringMember(writer, false, "inventory_host", IPAddress.Loopback.ToString()); // home - LLSDMap home = new LLSDMap(3); - LLSDArray homeRegionHandle = new LLSDArray(2); uint homeRegionX, homeRegionY; Utils.LongToUInts(HomeRegion, out homeRegionX, out homeRegionY); homeRegionHandle.Add(LLSD.FromReal((double)homeRegionX)); homeRegionHandle.Add(LLSD.FromReal((double)homeRegionY)); + LLSDMap home = new LLSDMap(3); home["region_handle"] = homeRegionHandle; home["position"] = LLSD.FromVector3(HomePosition); home["look_at"] = LLSD.FromVector3(HomeLookAt); diff --git a/Programs/Simian/Extensions/InventoryManager.cs b/Programs/Simian/Extensions/InventoryManager.cs index 2456f55d..5500cbb1 100644 --- a/Programs/Simian/Extensions/InventoryManager.cs +++ b/Programs/Simian/Extensions/InventoryManager.cs @@ -108,22 +108,28 @@ namespace Simian.Extensions { InventoryItem item = (InventoryItem)obj; + //item.Permissions.BaseMask = (PermissionMask)block.BaseMask; + item.Permissions.BaseMask = PermissionMask.All; + //item.Permissions.EveryoneMask = (PermissionMask)block.EveryoneMask; + item.Permissions.EveryoneMask = PermissionMask.All; + //item.Permissions.GroupMask = (PermissionMask)block.GroupMask; + item.Permissions.GroupMask = PermissionMask.All; + //item.Permissions.NextOwnerMask = (PermissionMask)block.NextOwnerMask; + item.Permissions.NextOwnerMask = PermissionMask.All; + //item.Permissions.OwnerMask = (PermissionMask)block.OwnerMask; + item.Permissions.OwnerMask = PermissionMask.All; + //block.CRC; - item.Permissions.BaseMask = (PermissionMask)block.BaseMask; item.CreationDate = Utils.UnixTimeToDateTime(block.CreationDate); item.CreatorID = block.CreatorID; item.Name = Utils.BytesToString(block.Description); - item.Permissions.EveryoneMask = (PermissionMask)block.EveryoneMask; item.Flags = block.Flags; item.ParentID = block.FolderID; item.GroupID = block.GroupID; - item.Permissions.GroupMask = (PermissionMask)block.GroupMask; item.GroupOwned = block.GroupOwned; item.InventoryType = (InventoryType)block.InvType; item.Name = Utils.BytesToString(block.Name); - item.Permissions.NextOwnerMask = (PermissionMask)block.NextOwnerMask; item.OwnerID = block.OwnerID; - item.Permissions.OwnerMask = (PermissionMask)block.OwnerMask; item.SalePrice = block.SalePrice; item.SaleType = (SaleType)block.SaleType; item.AssetType = (AssetType)block.Type; @@ -412,8 +418,13 @@ namespace Simian.Extensions item.Parent = parentFolder; item.Name = name; item.Description = description; - item.Permissions.OwnerMask = ownerMask; - item.Permissions.NextOwnerMask = nextOwnerMask; + item.Permissions.BaseMask = PermissionMask.All; + item.Permissions.EveryoneMask = PermissionMask.All; + item.Permissions.GroupMask = PermissionMask.All; + //item.Permissions.OwnerMask = ownerMask; + //item.Permissions.NextOwnerMask = nextOwnerMask; + item.Permissions.OwnerMask = PermissionMask.All; + item.Permissions.NextOwnerMask = PermissionMask.All; item.AssetType = type; item.AssetID = assetID; item.OwnerID = agentID; diff --git a/Programs/Simian/Extensions/UDPServer.cs b/Programs/Simian/Extensions/UDPServer.cs index dd8b10a3..6d53846d 100644 --- a/Programs/Simian/Extensions/UDPServer.cs +++ b/Programs/Simian/Extensions/UDPServer.cs @@ -400,7 +400,7 @@ namespace Simian Logger.DebugLog(String.Format("Resending packet #{0} ({1}), {2}ms have passed", outgoing.Packet.Header.Sequence, outgoing.Packet.GetType(), now - outgoing.TickCount)); - outgoing.TickCount = 0; + outgoing.TickCount = Environment.TickCount; outgoing.Packet.Header.Resent = true; ++outgoing.ResendCount; //++Stats.ResentPackets;