示例#1
0
        public UUID CreateCallingCard(UGUI agentid, bool isgod)
        {
            var item = new InventoryItem
            {
                AssetID       = UUID.Zero,
                AssetType     = AssetType.CallingCard,
                Creator       = agentid,
                Owner         = Owner,
                CreationDate  = Date.Now,
                InventoryType = InventoryType.CallingCard,
                Flags         = InventoryFlags.None,
                Name          = Name,
            };

            item.Permissions.Base = InventoryPermissionsMask.Copy | InventoryPermissionsMask.Modify;
            if (isgod)
            {
                item.Permissions.Base |= InventoryPermissionsMask.Transfer | InventoryPermissionsMask.Modify;
            }

            item.Permissions.EveryOne  = InventoryPermissionsMask.None;
            item.Permissions.Current   = item.Permissions.Base;
            item.Permissions.NextOwner = InventoryPermissionsMask.Copy | InventoryPermissionsMask.Modify;

            item.ParentFolderID = InventoryService.Folder[ID, AssetType.CallingCard].ID;
            InventoryService.Item.Add(item);
            var m = new BulkUpdateInventory
            {
                AgentID = ID
            };

            m.AddInventoryItem(item, 0);
            SendMessageAlways(m, SceneID);
            return(item.ID);
        }
示例#2
0
            public override void AssetTransferComplete()
            {
                InventoryFolder folder;
                SceneInterface  scene = null;
                IAgent          agent = null;

                if (!TryGetScene(m_SceneID, out scene) ||
                    !scene.Agents.TryGetValue(m_DestinationAgent.ID, out agent))
                {
                    agent = null;
                }

                if (m_DestinationFolder.Length == 0)
                {
                    if (!(m_DestinationFolderID != UUID.Zero && m_InventoryService.Folder.TryGetValue(m_DestinationAgent.ID, m_DestinationFolderID, out folder)) &&
                        !m_InventoryService.Folder.TryGetValue(m_DestinationAgent.ID, m_DestinationFolderType, out folder))
                    {
                        return;
                    }
                }
                else
                {
                    if (!m_InventoryService.Folder.TryGetValue(m_DestinationAgent.ID, m_DestinationFolderType, out folder))
                    {
                        return;
                    }
                    var rootFolderID = folder.ID;
                    folder = new InventoryFolder
                    {
                        Owner          = m_DestinationAgent,
                        ParentFolderID = rootFolderID,
                        DefaultType    = AssetType.Unknown,
                        Version        = 1,
                        Name           = m_DestinationFolder,
                        ID             = UUID.Random
                    };
                    m_InventoryService.Folder.Add(folder);

                    if (agent != null)
                    {
                        var msg = new BulkUpdateInventory
                        {
                            AgentID       = m_DestinationAgent.ID,
                            TransactionID = UUID.Zero
                        };
                        msg.AddInventoryFolder(folder);
                        agent.SendMessageAlways(msg, m_SceneID);
                    }
                }

                foreach (var sellItem in m_Items)
                {
                    var item = new InventoryItem(UUID.Random, sellItem);
                    item.LastOwner      = item.Owner;
                    item.Owner          = m_DestinationAgent;
                    item.ParentFolderID = folder.ID;
                    item.IsGroupOwned   = false;
                    m_InventoryService.Item.Add(item);
                    if (agent != null)
                    {
                        var msg = new UpdateCreateInventoryItem
                        {
                            AgentID     = m_DestinationAgent.ID,
                            SimApproved = true
                        };
                        msg.AddItem(item, 0);
                        agent.SendMessageAlways(msg, m_SceneID);
                    }
                }
            }