private void SendItemUpdateCreate(SimClient remoteClient, InventoryItem Item)
        {
            UpdateCreateInventoryItemPacket InventoryReply = new UpdateCreateInventoryItemPacket();

            InventoryReply.AgentData.AgentID              = remoteClient.AgentID;
            InventoryReply.AgentData.SimApproved          = true;
            InventoryReply.InventoryData                  = new UpdateCreateInventoryItemPacket.InventoryDataBlock[1];
            InventoryReply.InventoryData[0]               = new UpdateCreateInventoryItemPacket.InventoryDataBlock();
            InventoryReply.InventoryData[0].ItemID        = Item.ItemID;
            InventoryReply.InventoryData[0].AssetID       = Item.AssetID;
            InventoryReply.InventoryData[0].CreatorID     = Item.CreatorID;
            InventoryReply.InventoryData[0].BaseMask      = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].CreationDate  = 1000;
            InventoryReply.InventoryData[0].Description   = _enc.GetBytes(Item.Description + "\0");
            InventoryReply.InventoryData[0].EveryoneMask  = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].Flags         = 0;
            InventoryReply.InventoryData[0].FolderID      = Item.FolderID;
            InventoryReply.InventoryData[0].GroupID       = new LLUUID("00000000-0000-0000-0000-000000000000");
            InventoryReply.InventoryData[0].GroupMask     = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].InvType       = Item.InvType;
            InventoryReply.InventoryData[0].Name          = _enc.GetBytes(Item.Name + "\0");
            InventoryReply.InventoryData[0].NextOwnerMask = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].OwnerID       = Item.OwnerID;
            InventoryReply.InventoryData[0].OwnerMask     = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].SalePrice     = 100;
            InventoryReply.InventoryData[0].SaleType      = 0;
            InventoryReply.InventoryData[0].Type          = Item.Type;
            InventoryReply.InventoryData[0].CRC           = libsecondlife.Helpers.InventoryCRC(1000, 0, InventoryReply.InventoryData[0].InvType, InventoryReply.InventoryData[0].Type, InventoryReply.InventoryData[0].AssetID, InventoryReply.InventoryData[0].GroupID, 100, InventoryReply.InventoryData[0].OwnerID, InventoryReply.InventoryData[0].CreatorID, InventoryReply.InventoryData[0].ItemID, InventoryReply.InventoryData[0].FolderID, FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS);

            remoteClient.OutPacket(InventoryReply);
        }
Beispiel #2
0
        private void SendItemCreatedPacket(LLAgent agent, LLInventoryItem item, UUID transactionID, uint callbackID)
        {
            UpdateCreateInventoryItemPacket update = new UpdateCreateInventoryItemPacket();

            update.AgentData.AgentID     = agent.ID;
            update.AgentData.SimApproved = true;
            if (transactionID != UUID.Zero)
            {
                update.AgentData.TransactionID = transactionID;
            }
            else
            {
                update.AgentData.TransactionID = UUID.Random();
            }

            Permissions perms = item.Permissions;

            UpdateCreateInventoryItemPacket.InventoryDataBlock invData = new UpdateCreateInventoryItemPacket.InventoryDataBlock();
            invData.AssetID       = item.AssetID;
            invData.BaseMask      = (uint)perms.BaseMask;
            invData.CallbackID    = callbackID;
            invData.CreationDate  = (int)Utils.DateTimeToUnixTime(item.CreationDate);
            invData.CRC           = item.CRC();
            invData.CreatorID     = item.CreatorID;
            invData.Description   = Utils.StringToBytes(item.Description);
            invData.EveryoneMask  = (uint)perms.EveryoneMask;
            invData.Flags         = item.Flags;
            invData.FolderID      = item.ParentID;
            invData.GroupID       = item.GroupID;
            invData.GroupMask     = (uint)perms.GroupMask;
            invData.GroupOwned    = item.GroupOwned;
            invData.InvType       = (sbyte)item.InventoryType;
            invData.ItemID        = item.ID;
            invData.Name          = Utils.StringToBytes(item.Name);
            invData.NextOwnerMask = (uint)perms.NextOwnerMask;
            invData.OwnerID       = item.OwnerID;
            invData.OwnerMask     = (uint)perms.OwnerMask;
            invData.SalePrice     = item.SalePrice;
            invData.SaleType      = (byte)item.SaleType;
            invData.Type          = (sbyte)item.AssetType;

            update.InventoryData    = new UpdateCreateInventoryItemPacket.InventoryDataBlock[1];
            update.InventoryData[0] = invData;

            m_log.DebugFormat("Created inventory item {0}. ItemID: {1}, AssetID: {2}, ParentID: {3}, TransactionID: {4}, CallbackID: {5}",
                              item.Name, item.ID, item.AssetID, item.ParentID, transactionID, callbackID);

            m_udp.SendPacket(agent, update, ThrottleCategory.Task, false);
        }
Beispiel #3
0
        public void UpdateCreateInventoryItemHandler(Packet packet, Simulator simulator)
        {
            #if DEBUG_PACKETS
            Console.WriteLine(packet);
            #endif

            if (iiCreationInProgress != null)
            {
                UpdateCreateInventoryItemPacket reply = (UpdateCreateInventoryItemPacket)packet;

                // Use internal variable references, so we don't fire off any update code by using the public accessors

                iiCreationInProgress._ItemID = reply.InventoryData[0].ItemID;

                iiCreationInProgress._GroupOwned   = reply.InventoryData[0].GroupOwned;
                iiCreationInProgress._SaleType     = reply.InventoryData[0].SaleType;
                iiCreationInProgress._CreationDate = reply.InventoryData[0].CreationDate;
                iiCreationInProgress._BaseMask     = reply.InventoryData[0].BaseMask;

                iiCreationInProgress._Name          = Helpers.FieldToString(reply.InventoryData[0].Name);
                iiCreationInProgress._InvType       = reply.InventoryData[0].InvType;
                iiCreationInProgress._Type          = reply.InventoryData[0].Type;
                iiCreationInProgress._AssetID       = reply.InventoryData[0].AssetID;
                iiCreationInProgress._GroupID       = reply.InventoryData[0].GroupID;
                iiCreationInProgress._SalePrice     = reply.InventoryData[0].SalePrice;
                iiCreationInProgress._OwnerID       = reply.InventoryData[0].OwnerID;
                iiCreationInProgress._CreatorID     = reply.InventoryData[0].CreatorID;
                iiCreationInProgress._ItemID        = reply.InventoryData[0].ItemID;
                iiCreationInProgress._FolderID      = reply.InventoryData[0].FolderID;
                iiCreationInProgress._EveryoneMask  = reply.InventoryData[0].EveryoneMask;
                iiCreationInProgress._Description   = Helpers.FieldToString(reply.InventoryData[0].Description);
                iiCreationInProgress._NextOwnerMask = reply.InventoryData[0].NextOwnerMask;
                iiCreationInProgress._GroupMask     = reply.InventoryData[0].GroupMask;
                iiCreationInProgress._OwnerMask     = reply.InventoryData[0].OwnerMask;

                // NOT USED YET: iiCreationInProgress._CallbackID = reply.InventoryData[0].CallbackID;

                ItemCreationCompleted.Set();
            }
            else
            {
                Console.WriteLine(packet);
                throw new Exception("Received a packet for item creation, but no such response was expected.  This is probably a bad thing...");
            }
        }
Beispiel #4
0
        private void SendItemCreatedPacket(LLAgent agent, LLInventoryItem item, UUID transactionID, uint callbackID)
        {
            UpdateCreateInventoryItemPacket update = new UpdateCreateInventoryItemPacket();
            update.AgentData.AgentID = agent.ID;
            update.AgentData.SimApproved = true;
            if (transactionID != UUID.Zero)
                update.AgentData.TransactionID = transactionID;
            else
                update.AgentData.TransactionID = UUID.Random();

            Permissions perms = item.Permissions;

            UpdateCreateInventoryItemPacket.InventoryDataBlock invData = new UpdateCreateInventoryItemPacket.InventoryDataBlock();
            invData.AssetID = item.AssetID;
            invData.BaseMask = (uint)perms.BaseMask;
            invData.CallbackID = callbackID;
            invData.CreationDate = (int)Utils.DateTimeToUnixTime(item.CreationDate);
            invData.CRC = item.CRC();
            invData.CreatorID = item.CreatorID;
            invData.Description = Utils.StringToBytes(item.Description);
            invData.EveryoneMask = (uint)perms.EveryoneMask;
            invData.Flags = item.Flags;
            invData.FolderID = item.ParentID;
            invData.GroupID = item.GroupID;
            invData.GroupMask = (uint)perms.GroupMask;
            invData.GroupOwned = item.GroupOwned;
            invData.InvType = (sbyte)item.InventoryType;
            invData.ItemID = item.ID;
            invData.Name = Utils.StringToBytes(item.Name);
            invData.NextOwnerMask = (uint)perms.NextOwnerMask;
            invData.OwnerID = item.OwnerID;
            invData.OwnerMask = (uint)perms.OwnerMask;
            invData.SalePrice = item.SalePrice;
            invData.SaleType = (byte)item.SaleType;
            invData.Type = (sbyte)item.AssetType;

            update.InventoryData = new UpdateCreateInventoryItemPacket.InventoryDataBlock[1];
            update.InventoryData[0] = invData;

            m_log.DebugFormat("Created inventory item {0}. ItemID: {1}, AssetID: {2}, ParentID: {3}, TransactionID: {4}, CallbackID: {5}",
                item.Name, item.ID, item.AssetID, item.ParentID, transactionID, callbackID);

            m_udp.SendPacket(agent, update, ThrottleCategory.Task, false);
        }
        private void SendItemUpdateCreate(SimClient remoteClient, InventoryItem Item)
        {
            UpdateCreateInventoryItemPacket InventoryReply = new UpdateCreateInventoryItemPacket();
            InventoryReply.AgentData.AgentID = remoteClient.AgentID;
            InventoryReply.AgentData.SimApproved = true;
            InventoryReply.InventoryData = new UpdateCreateInventoryItemPacket.InventoryDataBlock[1];
            InventoryReply.InventoryData[0] = new UpdateCreateInventoryItemPacket.InventoryDataBlock();
            InventoryReply.InventoryData[0].ItemID = Item.ItemID;
            InventoryReply.InventoryData[0].AssetID = Item.AssetID;
            InventoryReply.InventoryData[0].CreatorID = Item.CreatorID;
            InventoryReply.InventoryData[0].BaseMask = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].CreationDate = 1000;
            InventoryReply.InventoryData[0].Description = _enc.GetBytes(Item.Description + "\0");
            InventoryReply.InventoryData[0].EveryoneMask = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].Flags = 0;
            InventoryReply.InventoryData[0].FolderID = Item.FolderID;
            InventoryReply.InventoryData[0].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000");
            InventoryReply.InventoryData[0].GroupMask = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].InvType = Item.InvType;
            InventoryReply.InventoryData[0].Name = _enc.GetBytes(Item.Name + "\0");
            InventoryReply.InventoryData[0].NextOwnerMask = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].OwnerID = Item.OwnerID;
            InventoryReply.InventoryData[0].OwnerMask = FULL_MASK_PERMISSIONS;
            InventoryReply.InventoryData[0].SalePrice = 100;
            InventoryReply.InventoryData[0].SaleType = 0;
            InventoryReply.InventoryData[0].Type = Item.Type;
            InventoryReply.InventoryData[0].CRC = libsecondlife.Helpers.InventoryCRC(1000, 0, InventoryReply.InventoryData[0].InvType, InventoryReply.InventoryData[0].Type, InventoryReply.InventoryData[0].AssetID, InventoryReply.InventoryData[0].GroupID, 100, InventoryReply.InventoryData[0].OwnerID, InventoryReply.InventoryData[0].CreatorID, InventoryReply.InventoryData[0].ItemID, InventoryReply.InventoryData[0].FolderID, FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS);

            remoteClient.OutPacket(InventoryReply);
        }