diff --git a/examples/Inventory/Inventory.ts b/examples/Inventory/Inventory.ts index cfb4ee9..c09f060 100644 --- a/examples/Inventory/Inventory.ts +++ b/examples/Inventory/Inventory.ts @@ -24,6 +24,7 @@ class Inventory extends ExampleBot const exampleFolderName = 'node-metaverse example'; const exampleNotecardName = 'Example Notecard'; + const exampleScriptName = 'Example script'; let exampleFolder: InventoryFolder | undefined = undefined; for (const childFolder of rootFolder.folders) @@ -66,6 +67,21 @@ class Inventory extends ExampleBot exampleNotecard.permissions.nextOwnerMask = PermissionMask.Transfer | PermissionMask.Modify; await exampleNotecard.update(); + let exampleScript = exampleFolder.items.find(f => f.name === exampleScriptName); + if (exampleScript === undefined) + { + exampleScript = await exampleFolder.uploadAsset( + AssetType.LSLText, + InventoryType.LSL, + Buffer.from( + 'default { touch_start(integer total_number) { llSay(0, "Hello, world!"); } } ' + , 'utf-8' + ), + 'Script', + '' + ); + } + // Give the notecard to our owner await this.bot.clientCommands.comms.giveInventory(this.masterAvatar, exampleNotecard); diff --git a/lib/classes/InventoryFolder.ts b/lib/classes/InventoryFolder.ts index 2c46cb6..fe8268f 100644 --- a/lib/classes/InventoryFolder.ts +++ b/lib/classes/InventoryFolder.ts @@ -618,6 +618,7 @@ export class InventoryFolder break; } case InventoryType.Script: + case InventoryType.LSL: { this.agent.currentRegion.caps.capsPostXML('UpdateScriptAgent', { 'item_id': new LLSD.UUID(createInventoryMsg.InventoryData[0].ItemID.toString()), @@ -702,6 +703,7 @@ export class InventoryFolder case InventoryType.Notecard: case InventoryType.Gesture: case InventoryType.Script: + case InventoryType.LSL: // These types must be created first and then modified this.uploadInventoryItem(type, inventoryType, data, name, description).then((invItemID: UUID) => { diff --git a/lib/classes/InventoryItem.ts b/lib/classes/InventoryItem.ts index 8cf876e..7d66fe4 100644 --- a/lib/classes/InventoryItem.ts +++ b/lib/classes/InventoryItem.ts @@ -241,6 +241,9 @@ export class InventoryItem case 'snapshot': item.inventoryType = InventoryType.Snapshot; break; + case 'LSL': + item.inventoryType = InventoryType.LSL; + break; case 'attach': item.inventoryType = InventoryType.Attachment; break; diff --git a/lib/classes/Utils.ts b/lib/classes/Utils.ts index 532d5f7..ca6df49 100644 --- a/lib/classes/Utils.ts +++ b/lib/classes/Utils.ts @@ -174,6 +174,8 @@ export class Utils return 'gesture'; case InventoryType.Mesh: return 'mesh'; + case InventoryType.LSL: + return 'LSL'; default: console.error('Unknown inventory type: ' + InventoryType[type]); return 'texture';