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); }
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); } } }