public Packet MoveInventoryItem( LLUUID itemID , LLUUID folderID , string newFolderName ) { MoveInventoryItemPacket p = new MoveInventoryItemPacket(); p.AgentData.AgentID = AgentID; p.AgentData.SessionID = SessionID; p.AgentData.Stamp = true; p.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; p.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); p.InventoryData[0].ItemID = itemID; p.InventoryData[0].FolderID = folderID; if (newFolderName != null) { p.InventoryData[0].NewName = Helpers.StringToField(newFolderName); } return(p); }
/// <summary> /// Move item to new folder, optionally changing it's name in the process /// </summary> /// <param name="itemID"></param> /// <param name="folderID"></param> /// <param name="itemName">specify null to not change the name</param> /// <returns></returns> public Packet MoveInventoryItem( LLUUID itemID , LLUUID folderID , string itemName ) { MoveInventoryItemPacket p = new MoveInventoryItemPacket(); p.AgentData.AgentID = AgentID; p.AgentData.SessionID = SessionID; p.AgentData.Stamp = false; //the official client uses false. p.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; p.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); p.InventoryData[0].ItemID = itemID; p.InventoryData[0].FolderID = folderID; if (itemName == null) { p.InventoryData[0].NewName = new byte[0]; } else { p.InventoryData[0].NewName = Helpers.StringToField(itemName); } return(p); }
public void MoveItems(Dictionary<LLUUID, LLUUID> itemsNewParents) { lock (_Store) { foreach (KeyValuePair<LLUUID, LLUUID> entry in itemsNewParents) { if (_Store.Contains(entry.Key)) { InventoryBase inv = _Store[entry.Key]; inv.ParentUUID = entry.Value; _Store.UpdateNodeFor(inv); } } } MoveInventoryItemPacket move = new MoveInventoryItemPacket(); move.AgentData.AgentID = _Client.Self.AgentID; move.AgentData.SessionID = _Client.Self.SessionID; move.AgentData.Stamp = false; //FIXME: ?? move.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[itemsNewParents.Count]; int index = 0; foreach (KeyValuePair<LLUUID, LLUUID> entry in itemsNewParents) { MoveInventoryItemPacket.InventoryDataBlock block = new MoveInventoryItemPacket.InventoryDataBlock(); block.ItemID = entry.Key; block.FolderID = entry.Value; block.NewName = new byte[0]; move.InventoryData[index++] = block; } _Client.Network.SendPacket(move); }
public void MoveItem(LLUUID item, LLUUID folder, string newItemName) { lock (_Store) { if (_Store.Contains(item)) { InventoryBase inv = _Store[item]; inv.ParentUUID = folder; _Store.UpdateNodeFor(inv); } } MoveInventoryItemPacket move = new MoveInventoryItemPacket(); move.AgentData.AgentID = _Client.Self.AgentID; move.AgentData.SessionID = _Client.Self.SessionID; move.AgentData.Stamp = false; //FIXME: ?? move.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; move.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); move.InventoryData[0].ItemID = item; move.InventoryData[0].FolderID = folder; move.InventoryData[0].NewName = Helpers.StringToField(newItemName); _Client.Network.SendPacket(move); }
/// <summary> /// Move and rename an inventory item /// </summary> /// <param name="itemID">The <seealso cref="UUID"/> of the source item to move</param> /// <param name="folderID">The <seealso cref="UUID"/> of the destination folder</param> /// <param name="newName">The name to change the folder to</param> public void MoveItem(UUID itemID, UUID folderID, string newName) { lock (_Store) { if (_Store.Contains(itemID)) { InventoryBase inv = _Store[itemID]; inv.Name = newName; inv.ParentUUID = folderID; _Store.UpdateNodeFor(inv); } } MoveInventoryItemPacket move = new MoveInventoryItemPacket(); move.AgentData.AgentID = Client.Self.AgentID; move.AgentData.SessionID = Client.Self.SessionID; move.AgentData.Stamp = false; //FIXME: ?? move.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; move.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); move.InventoryData[0].ItemID = itemID; move.InventoryData[0].FolderID = folderID; move.InventoryData[0].NewName = Utils.StringToBytes(newName); Client.Network.SendPacket(move); }
/// <summary> /// Move item to new folder, optionally changing it's name in the process /// </summary> /// <param name="itemID"></param> /// <param name="folderID"></param> /// <param name="itemName">specify null to not change the name</param> /// <returns></returns> public Packet MoveInventoryItem( LLUUID itemID , LLUUID folderID , string itemName ) { MoveInventoryItemPacket p = new MoveInventoryItemPacket(); p.AgentData.AgentID = AgentID; p.AgentData.SessionID = SessionID; p.AgentData.Stamp = false; //the official client uses false. p.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; p.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); p.InventoryData[0].ItemID = itemID; p.InventoryData[0].FolderID = folderID; if (itemName == null) { p.InventoryData[0].NewName = new byte[0]; } else { p.InventoryData[0].NewName = Helpers.StringToField(itemName); } return p; }
/// <summary> /// Move multiple inventory items. /// </summary> /// <param name="newParentID">The <seealso cref="UUID"/> of the new parent.</param> /// <param name="items">The <seealso cref="UUID"/>s of the items.</param> public void MoveItems(ICollection<UUID> items, UUID newParentID) { MoveInventoryItemPacket move = new MoveInventoryItemPacket(); move.AgentData.AgentID = _Agents.AgentID; move.AgentData.SessionID = _Agents.SessionID; move.AgentData.Stamp = false; //FIXME: ?? move.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[items.Count]; int i = 0; foreach (UUID item in items) { MoveInventoryItemPacket.InventoryDataBlock block = new MoveInventoryItemPacket.InventoryDataBlock(); block.ItemID = item; block.FolderID = newParentID; block.NewName = new byte[0]; move.InventoryData[i] = block; ++i; } _Network.SendPacket(move); }
/// <summary> /// Rename an inventory item /// </summary> /// <param name="itemID">The <seealso cref="UUID"/> of the source item to move</param> /// <param name="parentID">The <seealso cref="UUID"/> of the item's parent.</param> /// <param name="newName">The name to change the folder to</param> public void RenameItem(UUID itemID, UUID parentID, string newName) { MoveInventoryItemPacket move = new MoveInventoryItemPacket(); move.AgentData.AgentID = _Agents.AgentID; move.AgentData.SessionID = _Agents.SessionID; move.AgentData.Stamp = false; //FIXME: ?? move.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; move.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); move.InventoryData[0].ItemID = itemID; move.InventoryData[0].FolderID = parentID; move.InventoryData[0].NewName = Utils.StringToBytes(newName); _Network.SendPacket(move); }
public bool MoveInventoryItem(MoveInventoryItemPacket invPacket) { if (invPacket.AgentData.AgentID.Equals(libOwner)) // Tell grid surfer to forward request to region, because the Library is served from there (!) return false; if (connected) { string uri = InventoryServerURL + "/" + AuthToken + "/MoveItem/"; foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in invPacket.InventoryData) { InventoryItemBase item = new InventoryItemBase(); item.ID = datablock.ItemID; item.Folder = datablock.FolderID; item.Name = Util.FieldToString(datablock.NewName); item.Owner = UserID; OpenSimComms.InventoryItemOperation(uri, item, InventoryItemCreateCallBack); } } return true; }
public Packet MoveInventoryItem( LLUUID itemID , LLUUID folderID , string newFolderName ) { MoveInventoryItemPacket p = new MoveInventoryItemPacket(); p.AgentData.AgentID = AgentID; p.AgentData.SessionID = SessionID; p.AgentData.Stamp = true; p.InventoryData = new MoveInventoryItemPacket.InventoryDataBlock[1]; p.InventoryData[0] = new MoveInventoryItemPacket.InventoryDataBlock(); p.InventoryData[0].ItemID = itemID; p.InventoryData[0].FolderID = folderID; if (newFolderName != null) { p.InventoryData[0].NewName = Helpers.StringToField(newFolderName); } return p; }