diff --git a/lib/classes/commands/RegionCommands.ts b/lib/classes/commands/RegionCommands.ts index 5461644..3914d5c 100644 --- a/lib/classes/commands/RegionCommands.ts +++ b/lib/classes/commands/RegionCommands.ts @@ -845,7 +845,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.clothing[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -857,7 +868,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.settings[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -870,7 +892,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.bodyparts[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -882,7 +915,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.notecards[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -894,7 +938,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.sounds[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -906,7 +961,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.gestures[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -919,7 +985,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.scripts[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -931,7 +1008,18 @@ export class RegionCommands extends CommandsBase const item = buildMap.assetMap.animations[invItem.assetID.toString()].item; if (item !== null) { - await object.dropInventoryIntoContents(item, invItem.name); + await object.dropInventoryIntoContents(item); + if (invItem.name !== item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } } break; @@ -943,7 +1031,18 @@ export class RegionCommands extends CommandsBase const inventoryItem = buildMap.assetMap.objects[invItem.itemID.toString()]; if (inventoryItem !== null) { - await object.dropInventoryIntoContents(inventoryItem, invItem.name); + await object.dropInventoryIntoContents(inventoryItem); + if (invItem.name !== inventoryItem.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === inventoryItem.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } else { @@ -960,7 +1059,18 @@ export class RegionCommands extends CommandsBase const texItem = buildMap.assetMap.textures[invItem.assetID.toString()]; if (texItem.item !== null) { - await object.dropInventoryIntoContents(texItem.item, invItem.name); + await object.dropInventoryIntoContents(texItem.item); + if (invItem.name !== texItem.item.name) + { + await object.updateInventory(); + for (const taskItem of object.inventory) + { + if (taskItem.name === texItem.item.name) + { + await taskItem.renameInTask(object, invItem.name); + } + } + } } else { diff --git a/lib/classes/public/GameObject.ts b/lib/classes/public/GameObject.ts index 1a4a11e..43c66cb 100644 --- a/lib/classes/public/GameObject.ts +++ b/lib/classes/public/GameObject.ts @@ -2000,7 +2000,7 @@ export class GameObject implements IGameObjectData return GameObject.takeManyToInventory(this.region, [this], folder); } - async dropInventoryIntoContents(inventoryItem: InventoryItem | UUID, newName?: string): Promise + async dropInventoryIntoContents(inventoryItem: InventoryItem | UUID): Promise { const transactionID = UUID.zero(); @@ -2043,7 +2043,7 @@ export class GameObject implements IGameObjectData Flags: inventoryItem.flags, SaleType: inventoryItem.saleType, SalePrice: inventoryItem.salePrice, - Name: Utils.StringToBuffer(newName ?? inventoryItem.name), + Name: Utils.StringToBuffer(inventoryItem.name), Description: Utils.StringToBuffer(inventoryItem.description), CreationDate: inventoryItem.created.getTime() / 1000, CRC: inventoryItem.getCRC() diff --git a/package-lock.json b/package-lock.json index 558e1b3..36bf3d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@caspertech/node-metaverse", - "version": "0.7.7", + "version": "0.7.9", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@caspertech/node-metaverse", - "version": "0.7.7", + "version": "0.7.9", "license": "MIT", "dependencies": { "@caspertech/llsd": "^1.0.5", diff --git a/package.json b/package.json index 7883dcf..2c92bc8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@caspertech/node-metaverse", - "version": "0.7.7", + "version": "0.7.9", "description": "A node.js interface for Second Life.", "main": "dist/lib/index.js", "types": "dist/lib/index.d.ts",