@caspertech/node-metaverse 0.7.40 → 0.7.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/examples/Camera/Camera.js +3 -14
- package/dist/examples/Camera/Camera.js.map +1 -1
- package/dist/examples/ExampleBot.js +66 -87
- package/dist/examples/ExampleBot.js.map +1 -1
- package/dist/examples/Friends/Friends.js +29 -44
- package/dist/examples/Friends/Friends.js.map +1 -1
- package/dist/examples/Grid/Name2Key.js +25 -36
- package/dist/examples/Grid/Name2Key.js.map +1 -1
- package/dist/examples/Groups/Group.js +42 -55
- package/dist/examples/Groups/Group.js.map +1 -1
- package/dist/examples/Groups/GroupChat.js +55 -68
- package/dist/examples/Groups/GroupChat.js.map +1 -1
- package/dist/examples/InstantMessages/InstantMessages.js +8 -21
- package/dist/examples/InstantMessages/InstantMessages.js.map +1 -1
- package/dist/examples/Inventory/Inventory.js +80 -97
- package/dist/examples/Inventory/Inventory.js.map +1 -1
- package/dist/examples/MFA/MFA.js +24 -40
- package/dist/examples/MFA/MFA.js.map +1 -1
- package/dist/examples/Money/Money.js +28 -41
- package/dist/examples/Money/Money.js.map +1 -1
- package/dist/examples/Objects/TaskInventory.js +13 -24
- package/dist/examples/Objects/TaskInventory.js.map +1 -1
- package/dist/examples/Region/Agents.js +6 -17
- package/dist/examples/Region/Agents.js.map +1 -1
- package/dist/examples/Region/Estate.js +9 -20
- package/dist/examples/Region/Estate.js.map +1 -1
- package/dist/examples/Region/Parcels.js +12 -23
- package/dist/examples/Region/Parcels.js.map +1 -1
- package/dist/examples/Region/Region.js +2 -13
- package/dist/examples/Region/Region.js.map +1 -1
- package/dist/examples/Region/Settings.js +15 -0
- package/dist/examples/Region/Settings.js.map +1 -0
- package/dist/examples/Teleports/Teleports.js +22 -35
- package/dist/examples/Teleports/Teleports.js.map +1 -1
- package/dist/lib/Bot.d.ts +14 -14
- package/dist/lib/Bot.js +217 -231
- package/dist/lib/Bot.js.map +1 -1
- package/dist/lib/LoginHandler.d.ts +3 -3
- package/dist/lib/LoginHandler.js +106 -116
- package/dist/lib/LoginHandler.js.map +1 -1
- package/dist/lib/classes/Agent.d.ts +23 -35
- package/dist/lib/classes/Agent.js +96 -108
- package/dist/lib/classes/Agent.js.map +1 -1
- package/dist/lib/classes/AssetMap.d.ts +18 -95
- package/dist/lib/classes/AssetMap.js +86 -16
- package/dist/lib/classes/AssetMap.js.map +1 -1
- package/dist/lib/classes/AssetRegistry.d.ts +31 -0
- package/dist/lib/classes/AssetRegistry.js +26 -0
- package/dist/lib/classes/AssetRegistry.js.map +1 -0
- package/dist/lib/classes/AssetTypeRegistry.d.ts +21 -0
- package/dist/lib/classes/AssetTypeRegistry.js +81 -0
- package/dist/lib/classes/AssetTypeRegistry.js.map +1 -0
- package/dist/lib/classes/BVH.js.map +1 -1
- package/dist/lib/classes/BVHJoint.js.map +1 -1
- package/dist/lib/classes/BVHJointKeyframe.d.ts +1 -1
- package/dist/lib/classes/BatchQueue.d.ts +2 -2
- package/dist/lib/classes/BatchQueue.js +66 -80
- package/dist/lib/classes/BatchQueue.js.map +1 -1
- package/dist/lib/classes/BatchQueue.spec.js +17 -26
- package/dist/lib/classes/BatchQueue.spec.js.map +1 -1
- package/dist/lib/classes/BinaryReader.d.ts +66 -0
- package/dist/lib/classes/BinaryReader.js +304 -0
- package/dist/lib/classes/BinaryReader.js.map +1 -0
- package/dist/lib/classes/BinaryReader.spec.d.ts +1 -0
- package/dist/lib/classes/BinaryReader.spec.js +241 -0
- package/dist/lib/classes/BinaryReader.spec.js.map +1 -0
- package/dist/lib/classes/BinaryWriter.d.ts +34 -0
- package/dist/lib/classes/BinaryWriter.js +192 -0
- package/dist/lib/classes/BinaryWriter.js.map +1 -0
- package/dist/lib/classes/BinaryWriter.spec.d.ts +1 -0
- package/dist/lib/classes/BinaryWriter.spec.js +328 -0
- package/dist/lib/classes/BinaryWriter.spec.js.map +1 -0
- package/dist/lib/classes/BitPack.d.ts +2 -2
- package/dist/lib/classes/BitPack.js +1 -1
- package/dist/lib/classes/BitPack.js.map +1 -1
- package/dist/lib/classes/BuildMap.d.ts +6 -6
- package/dist/lib/classes/BuildMap.js.map +1 -1
- package/dist/lib/classes/Caps.d.ts +18 -24
- package/dist/lib/classes/Caps.js +278 -297
- package/dist/lib/classes/Caps.js.map +1 -1
- package/dist/lib/classes/Circuit.d.ts +20 -28
- package/dist/lib/classes/Circuit.js +104 -91
- package/dist/lib/classes/Circuit.js.map +1 -1
- package/dist/lib/classes/ClientCommands.d.ts +3 -3
- package/dist/lib/classes/ClientCommands.js.map +1 -1
- package/dist/lib/classes/ClientEvents.d.ts +41 -32
- package/dist/lib/classes/ClientEvents.js +65 -0
- package/dist/lib/classes/ClientEvents.js.map +1 -1
- package/dist/lib/classes/CoalescedGameObject.d.ts +2 -2
- package/dist/lib/classes/CoalescedGameObject.js +37 -49
- package/dist/lib/classes/CoalescedGameObject.js.map +1 -1
- package/dist/lib/classes/Color4.d.ts +2 -2
- package/dist/lib/classes/Color4.js +42 -42
- package/dist/lib/classes/Color4.js.map +1 -1
- package/dist/lib/classes/Comms.d.ts +3 -3
- package/dist/lib/classes/Comms.js +236 -236
- package/dist/lib/classes/Comms.js.map +1 -1
- package/dist/lib/classes/ConcurrentQueue.d.ts +3 -3
- package/dist/lib/classes/ConcurrentQueue.js +16 -11
- package/dist/lib/classes/ConcurrentQueue.js.map +1 -1
- package/dist/lib/classes/EventQueueClient.d.ts +6 -6
- package/dist/lib/classes/EventQueueClient.js +189 -201
- package/dist/lib/classes/EventQueueClient.js.map +1 -1
- package/dist/lib/classes/GroupBan.d.ts +3 -3
- package/dist/lib/classes/GroupBan.js.map +1 -1
- package/dist/lib/classes/GroupMember.d.ts +2 -2
- package/dist/lib/classes/GroupRole.d.ts +2 -2
- package/dist/lib/classes/IPAddress.d.ts +3 -2
- package/dist/lib/classes/IPAddress.js +14 -13
- package/dist/lib/classes/IPAddress.js.map +1 -1
- package/dist/lib/classes/Inventory.d.ts +7 -15
- package/dist/lib/classes/Inventory.js +69 -80
- package/dist/lib/classes/Inventory.js.map +1 -1
- package/dist/lib/classes/InventoryFolder.d.ts +11 -11
- package/dist/lib/classes/InventoryFolder.js +544 -626
- package/dist/lib/classes/InventoryFolder.js.map +1 -1
- package/dist/lib/classes/InventoryItem.d.ts +15 -11
- package/dist/lib/classes/InventoryItem.js +494 -486
- package/dist/lib/classes/InventoryItem.js.map +1 -1
- package/dist/lib/classes/InventoryTypeRegistry.d.ts +19 -0
- package/dist/lib/classes/InventoryTypeRegistry.js +69 -0
- package/dist/lib/classes/InventoryTypeRegistry.js.map +1 -0
- package/dist/lib/classes/LLGLTFMaterial.d.ts +1 -1
- package/dist/lib/classes/LLGLTFMaterial.js +2 -2
- package/dist/lib/classes/LLGLTFMaterial.js.map +1 -1
- package/dist/lib/classes/LLGLTFMaterial.spec.js +17 -18
- package/dist/lib/classes/LLGLTFMaterial.spec.js.map +1 -1
- package/dist/lib/classes/LLGLTFMaterialOverride.d.ts +1 -1
- package/dist/lib/classes/LLGLTFMaterialOverride.js +119 -118
- package/dist/lib/classes/LLGLTFMaterialOverride.js.map +1 -1
- package/dist/lib/classes/LLGLTFMaterialOverride.spec.js +70 -71
- package/dist/lib/classes/LLGLTFMaterialOverride.spec.js.map +1 -1
- package/dist/lib/classes/LLGesture.d.ts +1 -1
- package/dist/lib/classes/LLGesture.js +1 -1
- package/dist/lib/classes/LLGesture.js.map +1 -1
- package/dist/lib/classes/LLGestureAnimationStep.d.ts +1 -1
- package/dist/lib/classes/LLGestureAnimationStep.js.map +1 -1
- package/dist/lib/classes/LLGestureChatStep.js.map +1 -1
- package/dist/lib/classes/LLGestureSoundStep.d.ts +1 -1
- package/dist/lib/classes/LLGestureSoundStep.js.map +1 -1
- package/dist/lib/classes/LLGestureStep.d.ts +1 -1
- package/dist/lib/classes/LLGestureWaitStep.js.map +1 -1
- package/dist/lib/classes/LLLindenText.d.ts +2 -4
- package/dist/lib/classes/LLLindenText.js +12 -8
- package/dist/lib/classes/LLLindenText.js.map +1 -1
- package/dist/lib/classes/LLSettings.d.ts +98 -83
- package/dist/lib/classes/LLSettings.js +240 -83
- package/dist/lib/classes/LLSettings.js.map +1 -1
- package/dist/lib/classes/LLSettings.spec.d.ts +1 -0
- package/dist/lib/classes/LLSettings.spec.js +27 -0
- package/dist/lib/classes/LLSettings.spec.js.map +1 -0
- package/dist/lib/classes/LLWearable.d.ts +4 -8
- package/dist/lib/classes/LLWearable.js +1 -1
- package/dist/lib/classes/LLWearable.js.map +1 -1
- package/dist/lib/classes/Logger.d.ts +3 -3
- package/dist/lib/classes/Logger.js +1 -1
- package/dist/lib/classes/Logger.js.map +1 -1
- package/dist/lib/classes/LoginParameters.js.map +1 -1
- package/dist/lib/classes/LoginResponse.d.ts +4 -9
- package/dist/lib/classes/LoginResponse.js +120 -113
- package/dist/lib/classes/LoginResponse.js.map +1 -1
- package/dist/lib/classes/MapBlock.d.ts +2 -2
- package/dist/lib/classes/MessageBase.d.ts +5 -5
- package/dist/lib/classes/MessageClasses.js.map +1 -1
- package/dist/lib/classes/ObjectResolver.d.ts +6 -6
- package/dist/lib/classes/ObjectResolver.js +127 -152
- package/dist/lib/classes/ObjectResolver.js.map +1 -1
- package/dist/lib/classes/ObjectStoreFull.d.ts +9 -9
- package/dist/lib/classes/ObjectStoreFull.js +176 -192
- package/dist/lib/classes/ObjectStoreFull.js.map +1 -1
- package/dist/lib/classes/ObjectStoreLite.d.ts +29 -31
- package/dist/lib/classes/ObjectStoreLite.js +485 -494
- package/dist/lib/classes/ObjectStoreLite.js.map +1 -1
- package/dist/lib/classes/Packet.d.ts +2 -2
- package/dist/lib/classes/Packet.js +2 -2
- package/dist/lib/classes/Packet.js.map +1 -1
- package/dist/lib/classes/ParticleSystem.js +1 -1
- package/dist/lib/classes/ParticleSystem.js.map +1 -1
- package/dist/lib/classes/PrimFacesHelper.d.ts +14 -0
- package/dist/lib/classes/PrimFacesHelper.js +75 -0
- package/dist/lib/classes/PrimFacesHelper.js.map +1 -0
- package/dist/lib/classes/Quaternion.d.ts +31 -6
- package/dist/lib/classes/Quaternion.js +236 -48
- package/dist/lib/classes/Quaternion.js.map +1 -1
- package/dist/lib/classes/Region.d.ts +23 -22
- package/dist/lib/classes/Region.js +453 -515
- package/dist/lib/classes/Region.js.map +1 -1
- package/dist/lib/classes/TarArchive.d.ts +1 -1
- package/dist/lib/classes/TarArchive.js.map +1 -1
- package/dist/lib/classes/TarFile.js +1 -1
- package/dist/lib/classes/TarFile.js.map +1 -1
- package/dist/lib/classes/TarReader.d.ts +1 -2
- package/dist/lib/classes/TarReader.js +15 -17
- package/dist/lib/classes/TarReader.js.map +1 -1
- package/dist/lib/classes/TarWriter.d.ts +1 -1
- package/dist/lib/classes/TarWriter.js +51 -68
- package/dist/lib/classes/TarWriter.js.map +1 -1
- package/dist/lib/classes/TextureEntry.d.ts +2 -3
- package/dist/lib/classes/TextureEntry.js +12 -12
- package/dist/lib/classes/TextureEntry.js.map +1 -1
- package/dist/lib/classes/TextureEntryFace.d.ts +4 -4
- package/dist/lib/classes/TextureEntryFace.js.map +1 -1
- package/dist/lib/classes/UUID.d.ts +2 -2
- package/dist/lib/classes/UUID.js +28 -28
- package/dist/lib/classes/UUID.js.map +1 -1
- package/dist/lib/classes/Utils.d.ts +2 -11
- package/dist/lib/classes/Utils.js +72 -328
- package/dist/lib/classes/Utils.js.map +1 -1
- package/dist/lib/classes/Vector2.d.ts +35 -6
- package/dist/lib/classes/Vector2.js +192 -28
- package/dist/lib/classes/Vector2.js.map +1 -1
- package/dist/lib/classes/Vector3.d.ts +38 -6
- package/dist/lib/classes/Vector3.js +229 -48
- package/dist/lib/classes/Vector3.js.map +1 -1
- package/dist/lib/classes/Vector4.d.ts +36 -6
- package/dist/lib/classes/Vector4.js +225 -21
- package/dist/lib/classes/Vector4.js.map +1 -1
- package/dist/lib/classes/Wearable.d.ts +1 -1
- package/dist/lib/classes/Zerocoder.js +2 -2
- package/dist/lib/classes/Zerocoder.js.map +1 -1
- package/dist/lib/classes/commands/AgentCommands.d.ts +7 -5
- package/dist/lib/classes/commands/AgentCommands.js +60 -76
- package/dist/lib/classes/commands/AgentCommands.js.map +1 -1
- package/dist/lib/classes/commands/AssetCommands.d.ts +5 -10
- package/dist/lib/classes/commands/AssetCommands.js +176 -179
- package/dist/lib/classes/commands/AssetCommands.js.map +1 -1
- package/dist/lib/classes/commands/CommandsBase.d.ts +4 -4
- package/dist/lib/classes/commands/CommandsBase.js.map +1 -1
- package/dist/lib/classes/commands/CommunicationsCommands.d.ts +3 -3
- package/dist/lib/classes/commands/CommunicationsCommands.js +350 -426
- package/dist/lib/classes/commands/CommunicationsCommands.js.map +1 -1
- package/dist/lib/classes/commands/FriendCommands.d.ts +9 -10
- package/dist/lib/classes/commands/FriendCommands.js +238 -236
- package/dist/lib/classes/commands/FriendCommands.js.map +1 -1
- package/dist/lib/classes/commands/GridCommands.d.ts +3 -3
- package/dist/lib/classes/commands/GridCommands.js +299 -336
- package/dist/lib/classes/commands/GridCommands.js.map +1 -1
- package/dist/lib/classes/commands/GroupCommands.d.ts +2 -2
- package/dist/lib/classes/commands/GroupCommands.js +293 -336
- package/dist/lib/classes/commands/GroupCommands.js.map +1 -1
- package/dist/lib/classes/commands/InventoryCommands.d.ts +4 -4
- package/dist/lib/classes/commands/InventoryCommands.js +54 -69
- package/dist/lib/classes/commands/InventoryCommands.js.map +1 -1
- package/dist/lib/classes/commands/MovementCommands.d.ts +2 -2
- package/dist/lib/classes/commands/MovementCommands.js +23 -38
- package/dist/lib/classes/commands/MovementCommands.js.map +1 -1
- package/dist/lib/classes/commands/NetworkCommands.js +35 -46
- package/dist/lib/classes/commands/NetworkCommands.js.map +1 -1
- package/dist/lib/classes/commands/ParcelCommands.d.ts +4 -4
- package/dist/lib/classes/commands/ParcelCommands.js +64 -77
- package/dist/lib/classes/commands/ParcelCommands.js.map +1 -1
- package/dist/lib/classes/commands/RegionCommands.d.ts +11 -10
- package/dist/lib/classes/commands/RegionCommands.js +1126 -1211
- package/dist/lib/classes/commands/RegionCommands.js.map +1 -1
- package/dist/lib/classes/commands/TeleportCommands.d.ts +8 -8
- package/dist/lib/classes/commands/TeleportCommands.js +58 -58
- package/dist/lib/classes/commands/TeleportCommands.js.map +1 -1
- package/dist/lib/classes/interfaces/IGameObjectData.d.ts +18 -20
- package/dist/lib/classes/interfaces/ILandBlock.d.ts +2 -2
- package/dist/lib/classes/interfaces/IObjectStore.d.ts +12 -12
- package/dist/lib/classes/interfaces/IResolveJob.d.ts +2 -2
- package/dist/lib/classes/interfaces/ITreeBoundingBox.d.ts +2 -2
- package/dist/lib/classes/llsd/LLSD.d.ts +12 -0
- package/dist/lib/classes/llsd/LLSD.js +128 -0
- package/dist/lib/classes/llsd/LLSD.js.map +1 -0
- package/dist/lib/classes/llsd/LLSD.spec.d.ts +1 -0
- package/dist/lib/classes/llsd/LLSD.spec.js +249 -0
- package/dist/lib/classes/llsd/LLSD.spec.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDArray.d.ts +26 -3
- package/dist/lib/classes/llsd/LLSDArray.js +182 -6
- package/dist/lib/classes/llsd/LLSDArray.js.map +1 -1
- package/dist/lib/classes/llsd/LLSDBinary.d.ts +7 -0
- package/dist/lib/classes/llsd/LLSDBinary.js +114 -0
- package/dist/lib/classes/llsd/LLSDBinary.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDInteger.d.ts +9 -0
- package/dist/lib/classes/llsd/LLSDInteger.js +25 -0
- package/dist/lib/classes/llsd/LLSDInteger.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDMap.d.ts +16 -5
- package/dist/lib/classes/llsd/LLSDMap.js +197 -16
- package/dist/lib/classes/llsd/LLSDMap.js.map +1 -1
- package/dist/lib/classes/llsd/LLSDNotation.d.ts +11 -0
- package/dist/lib/classes/llsd/LLSDNotation.js +271 -0
- package/dist/lib/classes/llsd/LLSDNotation.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDReal.d.ts +10 -0
- package/dist/lib/classes/llsd/LLSDReal.js +71 -0
- package/dist/lib/classes/llsd/LLSDReal.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDToken.d.ts +1 -1
- package/dist/lib/classes/llsd/LLSDTokenContainer.d.ts +2 -2
- package/dist/lib/classes/llsd/LLSDTokenGenerator.d.ts +1 -1
- package/dist/lib/classes/llsd/LLSDTokenSpec.d.ts +1 -1
- package/dist/lib/classes/llsd/LLSDTokenType.d.ts +18 -18
- package/dist/lib/classes/llsd/LLSDTokenType.js +18 -18
- package/dist/lib/classes/llsd/LLSDTokenType.js.map +1 -1
- package/dist/lib/classes/llsd/LLSDType.d.ts +6 -3
- package/dist/lib/classes/llsd/LLSDURI.d.ts +7 -0
- package/dist/lib/classes/llsd/LLSDURI.js +19 -0
- package/dist/lib/classes/llsd/LLSDURI.js.map +1 -0
- package/dist/lib/classes/llsd/LLSDXML.d.ts +5 -0
- package/dist/lib/classes/llsd/LLSDXML.js +245 -0
- package/dist/lib/classes/llsd/LLSDXML.js.map +1 -0
- package/dist/lib/classes/messages/ObjectUpdate.d.ts +4 -5
- package/dist/lib/classes/messages/ObjectUpdate.js +115 -115
- package/dist/lib/classes/messages/ObjectUpdate.js.map +1 -1
- package/dist/lib/classes/messages/SimStats.d.ts +3 -2
- package/dist/lib/classes/messages/SimStats.js +17 -17
- package/dist/lib/classes/messages/SimStats.js.map +1 -1
- package/dist/lib/classes/public/Avatar.d.ts +4 -4
- package/dist/lib/classes/public/Avatar.js +39 -33
- package/dist/lib/classes/public/Avatar.js.map +1 -1
- package/dist/lib/classes/public/AvatarQueryResult.d.ts +4 -4
- package/dist/lib/classes/public/AvatarQueryResult.js.map +1 -1
- package/dist/lib/classes/public/ExtendedMeshData.d.ts +1 -1
- package/dist/lib/classes/public/ExtendedMeshData.js.map +1 -1
- package/dist/lib/classes/public/ExtraParams.d.ts +6 -6
- package/dist/lib/classes/public/ExtraParams.js +36 -39
- package/dist/lib/classes/public/ExtraParams.js.map +1 -1
- package/dist/lib/classes/public/ExtraParams.spec.js +2 -11
- package/dist/lib/classes/public/ExtraParams.spec.js.map +1 -1
- package/dist/lib/classes/public/FlexibleData.js.map +1 -1
- package/dist/lib/classes/public/Friend.js.map +1 -1
- package/dist/lib/classes/public/GameObject.d.ts +23 -21
- package/dist/lib/classes/public/GameObject.js +1294 -1306
- package/dist/lib/classes/public/GameObject.js.map +1 -1
- package/dist/lib/classes/public/GameObject.spec.js +8 -18
- package/dist/lib/classes/public/GameObject.spec.js.map +1 -1
- package/dist/lib/classes/public/LLMesh.d.ts +5 -7
- package/dist/lib/classes/public/LLMesh.js +194 -216
- package/dist/lib/classes/public/LLMesh.js.map +1 -1
- package/dist/lib/classes/public/LightData.js.map +1 -1
- package/dist/lib/classes/public/LightImageData.js.map +1 -1
- package/dist/lib/classes/public/Material.js +45 -56
- package/dist/lib/classes/public/Material.js.map +1 -1
- package/dist/lib/classes/public/MeshData.js.map +1 -1
- package/dist/lib/classes/public/Parcel.d.ts +4 -4
- package/dist/lib/classes/public/Parcel.js +1 -2
- package/dist/lib/classes/public/Parcel.js.map +1 -1
- package/dist/lib/classes/public/ReflectionProbeData.d.ts +1 -1
- package/dist/lib/classes/public/ReflectionProbeData.js.map +1 -1
- package/dist/lib/classes/public/RegionEnvironment.d.ts +14 -13
- package/dist/lib/classes/public/RegionEnvironment.js +94 -53
- package/dist/lib/classes/public/RegionEnvironment.js.map +1 -1
- package/dist/lib/classes/public/RegionEnvironmentSky.d.ts +2 -0
- package/dist/lib/classes/public/RegionEnvironmentSky.js +7 -0
- package/dist/lib/classes/public/RegionEnvironmentSky.js.map +1 -0
- package/dist/lib/classes/public/RegionEnvironmentWater.d.ts +2 -0
- package/dist/lib/classes/public/RegionEnvironmentWater.js +7 -0
- package/dist/lib/classes/public/RegionEnvironmentWater.js.map +1 -0
- package/dist/lib/classes/public/RenderMaterialData.js.map +1 -1
- package/dist/lib/classes/public/RenderMaterialParam.d.ts +1 -1
- package/dist/lib/classes/public/SculptData.js.map +1 -1
- package/dist/lib/classes/public/TextureAnim.js +2 -1
- package/dist/lib/classes/public/TextureAnim.js.map +1 -1
- package/dist/lib/classes/public/interfaces/GlobalPosition.d.ts +1 -1
- package/dist/lib/classes/public/interfaces/LLPhysicsConvex.d.ts +1 -1
- package/dist/lib/classes/public/interfaces/LLSkin.d.ts +1 -1
- package/dist/lib/classes/public/interfaces/LLSubMesh.d.ts +3 -5
- package/dist/lib/classes/public/interfaces/MapLocation.d.ts +3 -3
- package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.d.ts +26 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.js +3 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentSkyLLSD.js.map +1 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.d.ts +15 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.js +3 -0
- package/dist/lib/classes/public/interfaces/RegionEnvironmentWaterLLSD.js.map +1 -0
- package/dist/lib/classes/public/interfaces/SkyPreset.d.ts +3 -3
- package/dist/lib/classes/public/interfaces/WaterPreset.d.ts +4 -4
- package/dist/lib/deviceToken.json +1 -0
- package/dist/lib/enums/AssetType.d.ts +6 -4
- package/dist/lib/enums/AssetType.js +5 -3
- package/dist/lib/enums/AssetType.js.map +1 -1
- package/dist/lib/enums/AttachmentPoint.d.ts +0 -1
- package/dist/lib/enums/AttachmentPoint.js +0 -1
- package/dist/lib/enums/AttachmentPoint.js.map +1 -1
- package/dist/lib/enums/InventoryType.d.ts +3 -5
- package/dist/lib/enums/InventoryType.js +2 -4
- package/dist/lib/enums/InventoryType.js.map +1 -1
- package/dist/lib/enums/LayerType.d.ts +1 -1
- package/dist/lib/enums/LayerType.js +1 -1
- package/dist/lib/events/AvatarPropertiesReplyEvent.d.ts +1 -1
- package/dist/lib/events/BalanceUpdatedEvent.d.ts +2 -2
- package/dist/lib/events/BulkUpdateInventoryEvent.d.ts +2 -2
- package/dist/lib/events/BulkUpdateInventoryEvent.js.map +1 -1
- package/dist/lib/events/ChatEvent.d.ts +5 -5
- package/dist/lib/events/FriendOnlineEvent.d.ts +1 -1
- package/dist/lib/events/FriendRemovedEvent.d.ts +1 -1
- package/dist/lib/events/FriendRequestEvent.d.ts +1 -1
- package/dist/lib/events/FriendResponseEvent.d.ts +1 -1
- package/dist/lib/events/FriendRightsEvent.d.ts +2 -2
- package/dist/lib/events/GroupChatClosedEvent.d.ts +1 -1
- package/dist/lib/events/GroupChatEvent.d.ts +1 -1
- package/dist/lib/events/GroupChatSessionAgentListEvent.d.ts +1 -1
- package/dist/lib/events/GroupChatSessionJoinEvent.d.ts +1 -1
- package/dist/lib/events/GroupInviteEvent.d.ts +1 -1
- package/dist/lib/events/GroupNoticeEvent.d.ts +1 -1
- package/dist/lib/events/GroupProfileReplyEvent.d.ts +2 -2
- package/dist/lib/events/InstantMessageEvent.d.ts +3 -3
- package/dist/lib/events/InventoryOfferedEvent.d.ts +3 -3
- package/dist/lib/events/InventoryResponseEvent.d.ts +1 -1
- package/dist/lib/events/LandStatsEvent.d.ts +4 -4
- package/dist/lib/events/LandStatsEvent.js.map +1 -1
- package/dist/lib/events/LureEvent.d.ts +2 -2
- package/dist/lib/events/MapInfoRangeReplyEvent.d.ts +1 -1
- package/dist/lib/events/MapInfoReplyEvent.d.ts +2 -2
- package/dist/lib/events/NewObjectEvent.d.ts +2 -2
- package/dist/lib/events/ObjectKilledEvent.d.ts +2 -2
- package/dist/lib/events/ObjectPhysicsDataEvent.d.ts +1 -1
- package/dist/lib/events/ObjectResolvedEvent.d.ts +1 -1
- package/dist/lib/events/ObjectUpdatedEvent.d.ts +2 -2
- package/dist/lib/events/ParcelInfoReplyEvent.d.ts +3 -3
- package/dist/lib/events/ParcelPropertiesEvent.d.ts +3 -3
- package/dist/lib/events/RegionInfoReplyEvent.d.ts +2 -2
- package/dist/lib/events/ScriptDialogEvent.d.ts +1 -1
- package/dist/lib/events/SelectedObjectEvent.d.ts +1 -1
- package/dist/lib/events/TeleportEvent.d.ts +1 -1
- package/dist/lib/index.d.ts +6 -8
- package/dist/lib/index.js +4 -7
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/tsm/common.d.ts +1 -1
- package/dist/lib/tsm/common.js +3 -1
- package/dist/lib/tsm/common.js.map +1 -1
- package/dist/lib/tsm/mat2.d.ts +8 -8
- package/dist/lib/tsm/mat2.js +8 -7
- package/dist/lib/tsm/mat2.js.map +1 -1
- package/dist/lib/tsm/mat3.d.ts +7 -7
- package/dist/lib/tsm/mat3.js +8 -7
- package/dist/lib/tsm/mat3.js.map +1 -1
- package/dist/lib/tsm/mat4.d.ts +9 -9
- package/dist/lib/tsm/mat4.js +8 -7
- package/dist/lib/tsm/mat4.js.map +1 -1
- package/dist/lib/tsm/quat.d.ts +19 -19
- package/dist/lib/tsm/quat.js +69 -68
- package/dist/lib/tsm/quat.js.map +1 -1
- package/dist/lib/tsm/vec2.d.ts +13 -13
- package/dist/lib/tsm/vec2.js +30 -29
- package/dist/lib/tsm/vec2.js.map +1 -1
- package/dist/lib/tsm/vec3.d.ts +16 -16
- package/dist/lib/tsm/vec3.js +48 -47
- package/dist/lib/tsm/vec3.js.map +1 -1
- package/dist/lib/tsm/vec4.d.ts +22 -22
- package/dist/lib/tsm/vec4.js +94 -93
- package/dist/lib/tsm/vec4.js.map +1 -1
- package/eslint.config.mjs +104 -0
- package/examples/Inventory/Inventory.ts +4 -2
- package/examples/Money/Money.ts +6 -6
- package/examples/Objects/TaskInventory.ts +4 -3
- package/examples/Region/Settings.ts +19 -0
- package/package.json +10 -9
- package/.eslintrc +0 -224
- package/dist/lib/classes/llsd/LLSDNotationParser.d.ts +0 -9
- package/dist/lib/classes/llsd/LLSDNotationParser.js +0 -177
- package/dist/lib/classes/llsd/LLSDNotationParser.js.map +0 -1
- package/dist/lib/classes/llsd/LLSDNotationParser.spec.js +0 -167
- package/dist/lib/classes/llsd/LLSDNotationParser.spec.js.map +0 -1
- package/dist/lib/enums/AssetTypeLL.d.ts +0 -27
- package/dist/lib/enums/AssetTypeLL.js +0 -32
- package/dist/lib/enums/AssetTypeLL.js.map +0 -1
- package/dist/lib/enums/HTTPAssets.d.ts +0 -24
- package/dist/lib/enums/HTTPAssets.js +0 -29
- package/dist/lib/enums/HTTPAssets.js.map +0 -1
- /package/dist/{lib/classes/llsd/LLSDNotationParser.spec.d.ts → examples/Region/Settings.d.ts} +0 -0
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.InventoryItem = void 0;
|
|
13
4
|
const LLSD = require("@caspertech/llsd");
|
|
14
5
|
const builder = require("xmlbuilder");
|
|
15
6
|
const crypto = require("crypto");
|
|
16
|
-
const
|
|
17
|
-
const AssetTypeLL_1 = require("../enums/AssetTypeLL");
|
|
7
|
+
const AssetType_1 = require("../enums/AssetType");
|
|
18
8
|
const FilterResponse_1 = require("../enums/FilterResponse");
|
|
19
9
|
const InventoryType_1 = require("../enums/InventoryType");
|
|
20
10
|
const Message_1 = require("../enums/Message");
|
|
21
11
|
const PacketFlags_1 = require("../enums/PacketFlags");
|
|
22
12
|
const PermissionMask_1 = require("../enums/PermissionMask");
|
|
23
13
|
const SaleTypeLL_1 = require("../enums/SaleTypeLL");
|
|
14
|
+
const InventoryFolder_1 = require("./InventoryFolder");
|
|
24
15
|
const DetachAttachmentIntoInv_1 = require("./messages/DetachAttachmentIntoInv");
|
|
25
16
|
const MoveInventoryItem_1 = require("./messages/MoveInventoryItem");
|
|
26
17
|
const MoveTaskInventory_1 = require("./messages/MoveTaskInventory");
|
|
@@ -33,7 +24,30 @@ const Utils_1 = require("./Utils");
|
|
|
33
24
|
const UUID_1 = require("./UUID");
|
|
34
25
|
const Vector3_1 = require("./Vector3");
|
|
35
26
|
const CopyInventoryItem_1 = require("./messages/CopyInventoryItem");
|
|
27
|
+
const AssetTypeRegistry_1 = require("./AssetTypeRegistry");
|
|
28
|
+
const InventoryTypeRegistry_1 = require("./InventoryTypeRegistry");
|
|
29
|
+
const GameObject_1 = require("./public/GameObject");
|
|
30
|
+
const GetScriptRunning_1 = require("./messages/GetScriptRunning");
|
|
31
|
+
const ScriptRunningReply_1 = require("./messages/ScriptRunningReply");
|
|
32
|
+
const SetScriptRunning_1 = require("./messages/SetScriptRunning");
|
|
36
33
|
class InventoryItem {
|
|
34
|
+
constructor(container, agent) {
|
|
35
|
+
this.container = container;
|
|
36
|
+
this.agent = agent;
|
|
37
|
+
this.assetID = UUID_1.UUID.zero();
|
|
38
|
+
this.permissions = {
|
|
39
|
+
baseMask: 0,
|
|
40
|
+
groupMask: 0,
|
|
41
|
+
nextOwnerMask: 0,
|
|
42
|
+
ownerMask: 0,
|
|
43
|
+
everyoneMask: 0,
|
|
44
|
+
lastOwner: UUID_1.UUID.zero(),
|
|
45
|
+
owner: UUID_1.UUID.zero(),
|
|
46
|
+
creator: UUID_1.UUID.zero(),
|
|
47
|
+
group: UUID_1.UUID.zero(),
|
|
48
|
+
groupOwned: false
|
|
49
|
+
};
|
|
50
|
+
}
|
|
37
51
|
static fromEmbeddedAsset(lineObj, container, agent) {
|
|
38
52
|
const item = new InventoryItem(container, agent);
|
|
39
53
|
let contMetadata = false;
|
|
@@ -178,77 +192,20 @@ class InventoryItem {
|
|
|
178
192
|
}
|
|
179
193
|
else if (result.key === 'type') {
|
|
180
194
|
const typeString = result.value;
|
|
181
|
-
|
|
195
|
+
const type = AssetTypeRegistry_1.AssetTypeRegistry.getTypeFromTypeName(typeString);
|
|
196
|
+
if (type !== undefined) {
|
|
197
|
+
item.type = type.type;
|
|
198
|
+
}
|
|
182
199
|
}
|
|
183
200
|
else if (result.key === 'inv_type') {
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
case 'texture':
|
|
187
|
-
item.inventoryType = InventoryType_1.InventoryType.Texture;
|
|
188
|
-
break;
|
|
189
|
-
case 'sound':
|
|
190
|
-
item.inventoryType = InventoryType_1.InventoryType.Sound;
|
|
191
|
-
break;
|
|
192
|
-
case 'callcard':
|
|
193
|
-
item.inventoryType = InventoryType_1.InventoryType.CallingCard;
|
|
194
|
-
break;
|
|
195
|
-
case 'landmark':
|
|
196
|
-
item.inventoryType = InventoryType_1.InventoryType.Landmark;
|
|
197
|
-
break;
|
|
198
|
-
case 'object':
|
|
199
|
-
item.inventoryType = InventoryType_1.InventoryType.Object;
|
|
200
|
-
break;
|
|
201
|
-
case 'notecard':
|
|
202
|
-
item.inventoryType = InventoryType_1.InventoryType.Notecard;
|
|
203
|
-
break;
|
|
204
|
-
case 'category':
|
|
205
|
-
item.inventoryType = InventoryType_1.InventoryType.Category;
|
|
206
|
-
break;
|
|
207
|
-
case 'root':
|
|
208
|
-
item.inventoryType = InventoryType_1.InventoryType.RootCategory;
|
|
209
|
-
break;
|
|
210
|
-
case 'snapshot':
|
|
211
|
-
item.inventoryType = InventoryType_1.InventoryType.Snapshot;
|
|
212
|
-
break;
|
|
213
|
-
case 'script':
|
|
214
|
-
item.inventoryType = InventoryType_1.InventoryType.LSL;
|
|
215
|
-
break;
|
|
216
|
-
case 'attach':
|
|
217
|
-
item.inventoryType = InventoryType_1.InventoryType.Attachment;
|
|
218
|
-
break;
|
|
219
|
-
case 'wearable':
|
|
220
|
-
item.inventoryType = InventoryType_1.InventoryType.Wearable;
|
|
221
|
-
break;
|
|
222
|
-
case 'animation':
|
|
223
|
-
item.inventoryType = InventoryType_1.InventoryType.Animation;
|
|
224
|
-
break;
|
|
225
|
-
case 'gesture':
|
|
226
|
-
item.inventoryType = InventoryType_1.InventoryType.Gesture;
|
|
227
|
-
break;
|
|
228
|
-
case 'mesh':
|
|
229
|
-
item.inventoryType = InventoryType_1.InventoryType.Mesh;
|
|
230
|
-
break;
|
|
231
|
-
case 'settings':
|
|
232
|
-
item.inventoryType = InventoryType_1.InventoryType.Settings;
|
|
233
|
-
break;
|
|
234
|
-
case 'widget':
|
|
235
|
-
item.inventoryType = InventoryType_1.InventoryType.Widget;
|
|
236
|
-
break;
|
|
237
|
-
case 'person':
|
|
238
|
-
item.inventoryType = InventoryType_1.InventoryType.Person;
|
|
239
|
-
break;
|
|
240
|
-
case 'material':
|
|
241
|
-
item.inventoryType = InventoryType_1.InventoryType.Material;
|
|
242
|
-
break;
|
|
243
|
-
default:
|
|
244
|
-
console.error('Unknown inventory type: ' + typeString);
|
|
245
|
-
}
|
|
201
|
+
const t = InventoryTypeRegistry_1.InventoryTypeRegistry.getTypeFromTypeName(String(result.value));
|
|
202
|
+
item.inventoryType = t?.type ?? InventoryType_1.InventoryType.Unknown;
|
|
246
203
|
}
|
|
247
204
|
else if (result.key === 'flags') {
|
|
248
205
|
item.flags = parseInt(result.value, 16);
|
|
249
206
|
}
|
|
250
207
|
else if (result.key === 'name') {
|
|
251
|
-
if (result.value.
|
|
208
|
+
if (result.value.includes('|')) {
|
|
252
209
|
item.name = result.value.substring(0, result.value.indexOf('|'));
|
|
253
210
|
}
|
|
254
211
|
else {
|
|
@@ -257,7 +214,7 @@ class InventoryItem {
|
|
|
257
214
|
}
|
|
258
215
|
}
|
|
259
216
|
else if (result.key === 'desc') {
|
|
260
|
-
if (result.value.
|
|
217
|
+
if (result.value.includes('|')) {
|
|
261
218
|
item.description = result.value.substring(0, result.value.indexOf('|'));
|
|
262
219
|
}
|
|
263
220
|
else {
|
|
@@ -269,7 +226,7 @@ class InventoryItem {
|
|
|
269
226
|
item.created = new Date(parseInt(result.value, 10) * 1000);
|
|
270
227
|
}
|
|
271
228
|
else if (result.key === 'metadata') {
|
|
272
|
-
if (result.value.
|
|
229
|
+
if (result.value.includes('|')) {
|
|
273
230
|
item.metadata = result.value.substring(0, result.value.indexOf('|'));
|
|
274
231
|
}
|
|
275
232
|
else {
|
|
@@ -284,129 +241,116 @@ class InventoryItem {
|
|
|
284
241
|
}
|
|
285
242
|
return item;
|
|
286
243
|
}
|
|
287
|
-
static fromXML(xml) {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
inventoryItem.itemID = new UUID_1.UUID(prop.toString());
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
console.error(error);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'InvType')) !== undefined) {
|
|
308
|
-
inventoryItem.inventoryType = parseInt(prop, 10);
|
|
309
|
-
}
|
|
310
|
-
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Type')) !== undefined) {
|
|
311
|
-
inventoryItem.type = parseInt(prop, 10);
|
|
312
|
-
}
|
|
313
|
-
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreatorUUID')) !== undefined) {
|
|
314
|
-
try {
|
|
315
|
-
inventoryItem.permissions.creator = new UUID_1.UUID(prop.toString());
|
|
316
|
-
}
|
|
317
|
-
catch (err) {
|
|
318
|
-
console.error(err);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreationDate')) !== undefined) {
|
|
322
|
-
try {
|
|
323
|
-
inventoryItem.created = new Date(parseInt(prop, 10) * 1000);
|
|
324
|
-
}
|
|
325
|
-
catch (err) {
|
|
326
|
-
console.error(err);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Owner')) !== undefined) {
|
|
330
|
-
try {
|
|
331
|
-
inventoryItem.permissions.owner = new UUID_1.UUID(prop.toString());
|
|
332
|
-
}
|
|
333
|
-
catch (err) {
|
|
334
|
-
console.error(err);
|
|
335
|
-
}
|
|
244
|
+
static async fromXML(xml) {
|
|
245
|
+
const parsed = await Utils_1.Utils.parseXML(xml);
|
|
246
|
+
if (!parsed.InventoryItem) {
|
|
247
|
+
throw new Error('InventoryItem not found');
|
|
248
|
+
}
|
|
249
|
+
const inventoryItem = new InventoryItem();
|
|
250
|
+
const result = parsed.InventoryItem;
|
|
251
|
+
let prop = null;
|
|
252
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Name')) !== undefined) {
|
|
253
|
+
inventoryItem.name = prop.toString();
|
|
254
|
+
}
|
|
255
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ID')) !== undefined) {
|
|
256
|
+
try {
|
|
257
|
+
inventoryItem.itemID = new UUID_1.UUID(prop.toString());
|
|
336
258
|
}
|
|
337
|
-
|
|
338
|
-
|
|
259
|
+
catch (error) {
|
|
260
|
+
console.error(error);
|
|
339
261
|
}
|
|
340
|
-
|
|
341
|
-
|
|
262
|
+
}
|
|
263
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'InvType')) !== undefined) {
|
|
264
|
+
inventoryItem.inventoryType = parseInt(prop, 10);
|
|
265
|
+
}
|
|
266
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Type')) !== undefined) {
|
|
267
|
+
inventoryItem.type = parseInt(prop, 10);
|
|
268
|
+
}
|
|
269
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ScriptRunning')) !== undefined) {
|
|
270
|
+
inventoryItem.scriptRunning = prop === true;
|
|
271
|
+
}
|
|
272
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'ScriptMono')) !== undefined) {
|
|
273
|
+
inventoryItem.scriptMono = prop === true;
|
|
274
|
+
}
|
|
275
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreatorUUID')) !== undefined) {
|
|
276
|
+
try {
|
|
277
|
+
inventoryItem.permissions.creator = new UUID_1.UUID(prop.toString());
|
|
342
278
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
inventoryItem.assetID = new UUID_1.UUID(prop.toString());
|
|
346
|
-
}
|
|
347
|
-
catch (err) {
|
|
348
|
-
console.error(err);
|
|
349
|
-
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
console.error(err);
|
|
350
281
|
}
|
|
351
|
-
|
|
352
|
-
|
|
282
|
+
}
|
|
283
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CreationDate')) !== undefined) {
|
|
284
|
+
try {
|
|
285
|
+
inventoryItem.created = new Date(parseInt(prop, 10) * 1000);
|
|
353
286
|
}
|
|
354
|
-
|
|
355
|
-
|
|
287
|
+
catch (err) {
|
|
288
|
+
console.error(err);
|
|
356
289
|
}
|
|
357
|
-
|
|
358
|
-
|
|
290
|
+
}
|
|
291
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Owner')) !== undefined) {
|
|
292
|
+
try {
|
|
293
|
+
inventoryItem.permissions.owner = new UUID_1.UUID(prop.toString());
|
|
359
294
|
}
|
|
360
|
-
|
|
361
|
-
|
|
295
|
+
catch (err) {
|
|
296
|
+
console.error(err);
|
|
362
297
|
}
|
|
363
|
-
|
|
364
|
-
|
|
298
|
+
}
|
|
299
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Description')) !== undefined) {
|
|
300
|
+
inventoryItem.description = prop.toString();
|
|
301
|
+
}
|
|
302
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'AssetType')) !== undefined) {
|
|
303
|
+
inventoryItem.type = parseInt(prop, 10);
|
|
304
|
+
}
|
|
305
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'AssetID')) !== undefined) {
|
|
306
|
+
try {
|
|
307
|
+
inventoryItem.assetID = new UUID_1.UUID(prop.toString());
|
|
365
308
|
}
|
|
366
|
-
|
|
367
|
-
|
|
309
|
+
catch (err) {
|
|
310
|
+
console.error(err);
|
|
368
311
|
}
|
|
369
|
-
|
|
370
|
-
|
|
312
|
+
}
|
|
313
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'SaleType')) !== undefined) {
|
|
314
|
+
inventoryItem.saleType = parseInt(prop, 10);
|
|
315
|
+
}
|
|
316
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'SalePrice')) !== undefined) {
|
|
317
|
+
inventoryItem.salePrice = parseInt(prop, 10);
|
|
318
|
+
}
|
|
319
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'BasePermissions')) !== undefined) {
|
|
320
|
+
inventoryItem.permissions.baseMask = parseInt(prop, 10);
|
|
321
|
+
}
|
|
322
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'CurrentPermissions')) !== undefined) {
|
|
323
|
+
inventoryItem.permissions.ownerMask = parseInt(prop, 10);
|
|
324
|
+
}
|
|
325
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'EveryonePermissions')) !== undefined) {
|
|
326
|
+
inventoryItem.permissions.everyoneMask = parseInt(prop, 10);
|
|
327
|
+
}
|
|
328
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'NextPermissions')) !== undefined) {
|
|
329
|
+
inventoryItem.permissions.nextOwnerMask = parseInt(prop, 10);
|
|
330
|
+
}
|
|
331
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'Flags')) !== undefined) {
|
|
332
|
+
inventoryItem.flags = parseInt(prop, 10);
|
|
333
|
+
}
|
|
334
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'GroupID')) !== undefined) {
|
|
335
|
+
try {
|
|
336
|
+
inventoryItem.permissions.group = new UUID_1.UUID(prop.toString());
|
|
371
337
|
}
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
inventoryItem.permissions.group = new UUID_1.UUID(prop.toString());
|
|
375
|
-
}
|
|
376
|
-
catch (err) {
|
|
377
|
-
console.error(err);
|
|
378
|
-
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
console.error(err);
|
|
379
340
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
catch (err) {
|
|
385
|
-
console.error(err);
|
|
386
|
-
}
|
|
341
|
+
}
|
|
342
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'LastOwner')) !== undefined) {
|
|
343
|
+
try {
|
|
344
|
+
inventoryItem.permissions.lastOwner = new UUID_1.UUID(prop.toString());
|
|
387
345
|
}
|
|
388
|
-
|
|
389
|
-
|
|
346
|
+
catch (err) {
|
|
347
|
+
console.error(err);
|
|
390
348
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
this.agent = agent;
|
|
397
|
-
this.assetID = UUID_1.UUID.zero();
|
|
398
|
-
this.permissions = {
|
|
399
|
-
baseMask: 0,
|
|
400
|
-
groupMask: 0,
|
|
401
|
-
nextOwnerMask: 0,
|
|
402
|
-
ownerMask: 0,
|
|
403
|
-
everyoneMask: 0,
|
|
404
|
-
lastOwner: UUID_1.UUID.zero(),
|
|
405
|
-
owner: UUID_1.UUID.zero(),
|
|
406
|
-
creator: UUID_1.UUID.zero(),
|
|
407
|
-
group: UUID_1.UUID.zero(),
|
|
408
|
-
groupOwned: false
|
|
409
|
-
};
|
|
349
|
+
}
|
|
350
|
+
if ((prop = Utils_1.Utils.getFromXMLJS(result, 'GroupOwned')) !== undefined) {
|
|
351
|
+
inventoryItem.permissions.groupOwned = parseInt(prop, 10) > 0;
|
|
352
|
+
}
|
|
353
|
+
return inventoryItem;
|
|
410
354
|
}
|
|
411
355
|
toAsset(indent = '') {
|
|
412
356
|
const lines = [];
|
|
@@ -426,8 +370,8 @@ class InventoryItem {
|
|
|
426
370
|
lines.push('\tgroup_id\t' + this.permissions.group.toString());
|
|
427
371
|
lines.push('}');
|
|
428
372
|
lines.push('\tasset_id\t' + this.assetID.toString());
|
|
429
|
-
lines.push('\ttype\t' +
|
|
430
|
-
lines.push('\tinv_type\t' +
|
|
373
|
+
lines.push('\ttype\t' + AssetTypeRegistry_1.AssetTypeRegistry.getTypeName(this.type));
|
|
374
|
+
lines.push('\tinv_type\t' + InventoryTypeRegistry_1.InventoryTypeRegistry.getTypeName(this.inventoryType));
|
|
431
375
|
lines.push('\tflags\t' + Utils_1.Utils.numberToFixedHex(this.flags));
|
|
432
376
|
lines.push('sale_info\t0');
|
|
433
377
|
lines.push('{');
|
|
@@ -473,212 +417,193 @@ class InventoryItem {
|
|
|
473
417
|
crc = crc + Math.round(this.created.getTime() / 1000) >>> 0;
|
|
474
418
|
return crc;
|
|
475
419
|
}
|
|
476
|
-
update() {
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
513
|
-
});
|
|
420
|
+
async update() {
|
|
421
|
+
if (this.agent === undefined) {
|
|
422
|
+
throw new Error('This inventoryItem is local only and cannot be updated');
|
|
423
|
+
}
|
|
424
|
+
const msg = new UpdateInventoryItem_1.UpdateInventoryItemMessage();
|
|
425
|
+
msg.AgentData = {
|
|
426
|
+
AgentID: this.agent.agentID,
|
|
427
|
+
SessionID: this.agent.currentRegion.circuit.sessionID,
|
|
428
|
+
TransactionID: UUID_1.UUID.random()
|
|
429
|
+
};
|
|
430
|
+
msg.InventoryData = [{
|
|
431
|
+
ItemID: this.itemID,
|
|
432
|
+
FolderID: this.parentID,
|
|
433
|
+
CreatorID: this.permissions.creator,
|
|
434
|
+
OwnerID: this.permissions.owner,
|
|
435
|
+
GroupID: this.permissions.group,
|
|
436
|
+
BaseMask: this.permissions.baseMask,
|
|
437
|
+
OwnerMask: this.permissions.ownerMask,
|
|
438
|
+
GroupMask: this.permissions.groupMask,
|
|
439
|
+
EveryoneMask: this.permissions.everyoneMask,
|
|
440
|
+
NextOwnerMask: this.permissions.nextOwnerMask,
|
|
441
|
+
GroupOwned: this.permissions.groupOwned ?? false,
|
|
442
|
+
TransactionID: UUID_1.UUID.zero(),
|
|
443
|
+
CallbackID: 0,
|
|
444
|
+
Type: this.type,
|
|
445
|
+
InvType: this.inventoryType,
|
|
446
|
+
Flags: this.flags,
|
|
447
|
+
SaleType: this.saleType,
|
|
448
|
+
SalePrice: this.salePrice,
|
|
449
|
+
Name: Utils_1.Utils.StringToBuffer(this.name),
|
|
450
|
+
Description: Utils_1.Utils.StringToBuffer(this.description),
|
|
451
|
+
CreationDate: this.created.getTime() / 1000,
|
|
452
|
+
CRC: this.getCRC()
|
|
453
|
+
}];
|
|
454
|
+
const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
455
|
+
return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
514
456
|
}
|
|
515
|
-
moveToFolder(targetFolder) {
|
|
516
|
-
|
|
517
|
-
if (this.
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
const
|
|
531
|
-
for (const inv of message.InventoryData) {
|
|
532
|
-
if (Utils_1.Utils.BufferToStringSimple(inv.Name) === this.name) {
|
|
533
|
-
return FilterResponse_1.FilterResponse.Finish;
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
return FilterResponse_1.FilterResponse.NoMatch;
|
|
537
|
-
});
|
|
538
|
-
for (const inv of response.InventoryData) {
|
|
457
|
+
async moveToFolder(targetFolder) {
|
|
458
|
+
if (this.agent !== undefined) {
|
|
459
|
+
if (this.container instanceof GameObject_1.GameObject) {
|
|
460
|
+
const msg = new MoveTaskInventory_1.MoveTaskInventoryMessage();
|
|
461
|
+
msg.AgentData = {
|
|
462
|
+
AgentID: this.agent.agentID,
|
|
463
|
+
SessionID: this.agent.currentRegion.circuit.sessionID,
|
|
464
|
+
FolderID: targetFolder.folderID
|
|
465
|
+
};
|
|
466
|
+
msg.InventoryData = {
|
|
467
|
+
LocalID: this.container.ID,
|
|
468
|
+
ItemID: this.itemID
|
|
469
|
+
};
|
|
470
|
+
this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
471
|
+
const response = await this.agent.currentRegion.circuit.waitForMessage(Message_1.Message.UpdateCreateInventoryItem, 10000, (message) => {
|
|
472
|
+
for (const inv of message.InventoryData) {
|
|
539
473
|
if (Utils_1.Utils.BufferToStringSimple(inv.Name) === this.name) {
|
|
540
|
-
|
|
541
|
-
if (item === null) {
|
|
542
|
-
throw new Error('Unable to get inventory item after move');
|
|
543
|
-
}
|
|
544
|
-
if (!item.parentID.equals(targetFolder.folderID)) {
|
|
545
|
-
yield item.moveToFolder(targetFolder);
|
|
546
|
-
}
|
|
547
|
-
return item;
|
|
474
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
548
475
|
}
|
|
549
476
|
}
|
|
550
|
-
|
|
551
|
-
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
{
|
|
561
|
-
ItemID: this.itemID,
|
|
562
|
-
FolderID: targetFolder.folderID,
|
|
563
|
-
NewName: Buffer.alloc(0)
|
|
477
|
+
return FilterResponse_1.FilterResponse.NoMatch;
|
|
478
|
+
});
|
|
479
|
+
for (const inv of response.InventoryData) {
|
|
480
|
+
if (Utils_1.Utils.BufferToStringSimple(inv.Name) === this.name) {
|
|
481
|
+
const item = await this.agent.inventory.fetchInventoryItem(inv.ItemID);
|
|
482
|
+
if (item === null) {
|
|
483
|
+
throw new Error('Unable to get inventory item after move');
|
|
484
|
+
}
|
|
485
|
+
if (!item.parentID.equals(targetFolder.folderID)) {
|
|
486
|
+
await item.moveToFolder(targetFolder);
|
|
564
487
|
}
|
|
565
|
-
|
|
566
|
-
const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
567
|
-
yield this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
568
|
-
const item = yield this.agent.inventory.fetchInventoryItem(this.itemID);
|
|
569
|
-
if (item === null) {
|
|
570
|
-
throw new Error('Unable to find inventory item after move');
|
|
488
|
+
return item;
|
|
571
489
|
}
|
|
572
|
-
return item;
|
|
573
490
|
}
|
|
491
|
+
throw new Error('Unable to get inventory item after move');
|
|
574
492
|
}
|
|
575
493
|
else {
|
|
576
|
-
|
|
577
|
-
}
|
|
578
|
-
});
|
|
579
|
-
}
|
|
580
|
-
delete() {
|
|
581
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
582
|
-
if (this.agent !== undefined) {
|
|
583
|
-
const msg = new RemoveInventoryItem_1.RemoveInventoryItemMessage();
|
|
494
|
+
const msg = new MoveInventoryItem_1.MoveInventoryItemMessage();
|
|
584
495
|
msg.AgentData = {
|
|
585
496
|
AgentID: this.agent.agentID,
|
|
586
|
-
SessionID: this.agent.currentRegion.circuit.sessionID
|
|
497
|
+
SessionID: this.agent.currentRegion.circuit.sessionID,
|
|
498
|
+
Stamp: false
|
|
587
499
|
};
|
|
588
500
|
msg.InventoryData = [
|
|
589
501
|
{
|
|
590
|
-
ItemID: this.itemID
|
|
502
|
+
ItemID: this.itemID,
|
|
503
|
+
FolderID: targetFolder.folderID,
|
|
504
|
+
NewName: Buffer.alloc(0)
|
|
591
505
|
}
|
|
592
506
|
];
|
|
593
507
|
const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
508
|
+
await this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
509
|
+
const item = await this.agent.inventory.fetchInventoryItem(this.itemID);
|
|
510
|
+
if (item === null) {
|
|
511
|
+
throw new Error('Unable to find inventory item after move');
|
|
512
|
+
}
|
|
513
|
+
return item;
|
|
598
514
|
}
|
|
599
|
-
}
|
|
515
|
+
}
|
|
516
|
+
else {
|
|
517
|
+
throw new Error('This inventoryItem is local only and cannot be moved to a folder');
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
async delete() {
|
|
521
|
+
if (this.agent !== undefined) {
|
|
522
|
+
const msg = new RemoveInventoryItem_1.RemoveInventoryItemMessage();
|
|
523
|
+
msg.AgentData = {
|
|
524
|
+
AgentID: this.agent.agentID,
|
|
525
|
+
SessionID: this.agent.currentRegion.circuit.sessionID
|
|
526
|
+
};
|
|
527
|
+
msg.InventoryData = [
|
|
528
|
+
{
|
|
529
|
+
ItemID: this.itemID
|
|
530
|
+
}
|
|
531
|
+
];
|
|
532
|
+
const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
533
|
+
return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
throw new Error('This inventoryItem is local only and cannot be deleted');
|
|
537
|
+
}
|
|
600
538
|
}
|
|
601
539
|
exportXML() {
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
540
|
+
const document = builder.create('InventoryItem');
|
|
541
|
+
document.ele('Name', this.name);
|
|
542
|
+
document.ele('ID', this.itemID.toString());
|
|
543
|
+
document.ele('InvType', this.inventoryType);
|
|
544
|
+
document.ele('CreatorUUID', this.permissions.creator.toString());
|
|
545
|
+
document.ele('CreationDate', this.created.getTime() / 1000);
|
|
546
|
+
document.ele('Owner', this.permissions.owner.toString());
|
|
547
|
+
document.ele('LastOwner', this.permissions.lastOwner.toString());
|
|
548
|
+
document.ele('Description', this.description);
|
|
549
|
+
document.ele('AssetType', this.type);
|
|
550
|
+
document.ele('AssetID', this.assetID.toString());
|
|
551
|
+
document.ele('SaleType', this.saleType);
|
|
552
|
+
document.ele('SalePrice', this.salePrice);
|
|
553
|
+
document.ele('BasePermissions', this.permissions.baseMask);
|
|
554
|
+
document.ele('CurrentPermissions', this.permissions.ownerMask);
|
|
555
|
+
document.ele('EveryonePermissions', this.permissions.everyoneMask);
|
|
556
|
+
document.ele('NextPermissions', this.permissions.nextOwnerMask);
|
|
557
|
+
document.ele('Flags', this.flags);
|
|
558
|
+
document.ele('GroupID', this.permissions.group.toString());
|
|
559
|
+
document.ele('GroupOwned', this.permissions.groupOwned);
|
|
560
|
+
if (this.type === AssetType_1.AssetType.LSLText) {
|
|
561
|
+
document.ele('ScriptRunning', this.scriptRunning);
|
|
562
|
+
document.ele('ScriptMono', this.scriptMono);
|
|
563
|
+
}
|
|
564
|
+
return document.end({ pretty: true, allowEmpty: true });
|
|
625
565
|
}
|
|
626
|
-
detachFromAvatar() {
|
|
627
|
-
|
|
566
|
+
async detachFromAvatar() {
|
|
567
|
+
if (this.agent === undefined) {
|
|
568
|
+
throw new Error('This inventory item was created locally. Please import to the grid.');
|
|
569
|
+
}
|
|
570
|
+
const msg = new DetachAttachmentIntoInv_1.DetachAttachmentIntoInvMessage();
|
|
571
|
+
msg.ObjectData = {
|
|
572
|
+
AgentID: this.agent.agentID,
|
|
573
|
+
ItemID: this.itemID
|
|
574
|
+
};
|
|
575
|
+
const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
576
|
+
return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
577
|
+
}
|
|
578
|
+
async attachToAvatar(attachPoint, timeout = 10000) {
|
|
579
|
+
return new Promise((resolve, reject) => {
|
|
628
580
|
if (this.agent === undefined) {
|
|
629
581
|
throw new Error('This inventory item was created locally. Please import to the grid.');
|
|
630
582
|
}
|
|
631
|
-
const
|
|
632
|
-
|
|
583
|
+
const rsafi = new RezSingleAttachmentFromInv_1.RezSingleAttachmentFromInvMessage();
|
|
584
|
+
rsafi.AgentData = {
|
|
633
585
|
AgentID: this.agent.agentID,
|
|
634
|
-
|
|
586
|
+
SessionID: this.agent.currentRegion.circuit.sessionID
|
|
635
587
|
};
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
ItemFlags: this.flags,
|
|
656
|
-
GroupMask: this.permissions.groupMask,
|
|
657
|
-
EveryoneMask: this.permissions.everyoneMask,
|
|
658
|
-
NextOwnerMask: this.permissions.nextOwnerMask,
|
|
659
|
-
Name: Utils_1.Utils.StringToBuffer(this.name),
|
|
660
|
-
Description: Utils_1.Utils.StringToBuffer(this.description)
|
|
661
|
-
};
|
|
662
|
-
const avatar = this.agent.currentRegion.clientCommands.agent.getAvatar();
|
|
663
|
-
if (avatar === undefined) {
|
|
664
|
-
throw new Error('Avatar could not be found');
|
|
665
|
-
}
|
|
666
|
-
let subs = undefined;
|
|
667
|
-
let tmout = undefined;
|
|
668
|
-
subs = avatar.onAttachmentAdded.subscribe((obj) => {
|
|
669
|
-
if (obj.name === this.name) {
|
|
670
|
-
if (subs !== undefined) {
|
|
671
|
-
subs.unsubscribe();
|
|
672
|
-
subs = undefined;
|
|
673
|
-
}
|
|
674
|
-
if (tmout !== undefined) {
|
|
675
|
-
clearTimeout(tmout);
|
|
676
|
-
tmout = undefined;
|
|
677
|
-
}
|
|
678
|
-
resolve(obj);
|
|
679
|
-
}
|
|
680
|
-
});
|
|
681
|
-
setTimeout(() => {
|
|
588
|
+
rsafi.ObjectData = {
|
|
589
|
+
ItemID: this.itemID,
|
|
590
|
+
OwnerID: this.permissions.owner,
|
|
591
|
+
AttachmentPt: 0x80 | attachPoint,
|
|
592
|
+
ItemFlags: this.flags,
|
|
593
|
+
GroupMask: this.permissions.groupMask,
|
|
594
|
+
EveryoneMask: this.permissions.everyoneMask,
|
|
595
|
+
NextOwnerMask: this.permissions.nextOwnerMask,
|
|
596
|
+
Name: Utils_1.Utils.StringToBuffer(this.name),
|
|
597
|
+
Description: Utils_1.Utils.StringToBuffer(this.description)
|
|
598
|
+
};
|
|
599
|
+
const avatar = this.agent.currentRegion.clientCommands.agent.getAvatar();
|
|
600
|
+
if (avatar === undefined) {
|
|
601
|
+
throw new Error('Avatar could not be found');
|
|
602
|
+
}
|
|
603
|
+
let subs = undefined;
|
|
604
|
+
let tmout = undefined;
|
|
605
|
+
subs = avatar.onAttachmentAdded.subscribe((obj) => {
|
|
606
|
+
if (obj.name === this.name) {
|
|
682
607
|
if (subs !== undefined) {
|
|
683
608
|
subs.unsubscribe();
|
|
684
609
|
subs = undefined;
|
|
@@ -687,14 +612,25 @@ class InventoryItem {
|
|
|
687
612
|
clearTimeout(tmout);
|
|
688
613
|
tmout = undefined;
|
|
689
614
|
}
|
|
690
|
-
|
|
691
|
-
}
|
|
692
|
-
this.agent.currentRegion.circuit.sendMessage(rsafi, PacketFlags_1.PacketFlags.Reliable);
|
|
615
|
+
resolve(obj);
|
|
616
|
+
}
|
|
693
617
|
});
|
|
618
|
+
setTimeout(() => {
|
|
619
|
+
if (subs !== undefined) {
|
|
620
|
+
subs.unsubscribe();
|
|
621
|
+
subs = undefined;
|
|
622
|
+
}
|
|
623
|
+
if (tmout !== undefined) {
|
|
624
|
+
clearTimeout(tmout);
|
|
625
|
+
tmout = undefined;
|
|
626
|
+
}
|
|
627
|
+
reject(new Error('Attach to avatar timed out'));
|
|
628
|
+
}, timeout);
|
|
629
|
+
this.agent.currentRegion.circuit.sendMessage(rsafi, PacketFlags_1.PacketFlags.Reliable);
|
|
694
630
|
});
|
|
695
631
|
}
|
|
696
|
-
rezGroupInWorld(position) {
|
|
697
|
-
return new Promise((resolve, reject) =>
|
|
632
|
+
async rezGroupInWorld(position) {
|
|
633
|
+
return new Promise((resolve, reject) => {
|
|
698
634
|
if (this.agent === undefined) {
|
|
699
635
|
reject(new Error('This InventoryItem is local only, so cant rez'));
|
|
700
636
|
return;
|
|
@@ -707,7 +643,7 @@ class InventoryItem {
|
|
|
707
643
|
GroupID: UUID_1.UUID.zero()
|
|
708
644
|
};
|
|
709
645
|
msg.RezData = {
|
|
710
|
-
FromTaskID: (this.container instanceof
|
|
646
|
+
FromTaskID: (this.container instanceof GameObject_1.GameObject) ? this.container.FullID : UUID_1.UUID.zero(),
|
|
711
647
|
BypassRaycast: 1,
|
|
712
648
|
RayStart: position,
|
|
713
649
|
RayEnd: position,
|
|
@@ -746,17 +682,20 @@ class InventoryItem {
|
|
|
746
682
|
let objSub = undefined;
|
|
747
683
|
const agent = this.agent;
|
|
748
684
|
const gotObjects = [];
|
|
749
|
-
objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) =>
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
if (evt.createSelected && !evt.object.claimedForBuild) {
|
|
754
|
-
if (evt.object.itemID !== undefined && evt.object.itemID.equals(this.itemID)) {
|
|
755
|
-
evt.object.claimedForBuild = true;
|
|
756
|
-
gotObjects.push(evt.object);
|
|
685
|
+
objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) => {
|
|
686
|
+
(async () => {
|
|
687
|
+
if (evt.createSelected && !evt.object.resolvedAt) {
|
|
688
|
+
await agent.currentRegion.clientCommands.region.resolveObject(evt.object, {});
|
|
757
689
|
}
|
|
758
|
-
|
|
759
|
-
|
|
690
|
+
if (evt.createSelected && !evt.object.claimedForBuild) {
|
|
691
|
+
if (evt.object.itemID?.equals(this.itemID)) {
|
|
692
|
+
evt.object.claimedForBuild = true;
|
|
693
|
+
gotObjects.push(evt.object);
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
})().catch((_e) => {
|
|
697
|
+
});
|
|
698
|
+
});
|
|
760
699
|
setTimeout(() => {
|
|
761
700
|
if (objSub !== undefined) {
|
|
762
701
|
objSub.unsubscribe();
|
|
@@ -771,12 +710,12 @@ class InventoryItem {
|
|
|
771
710
|
}, 30000);
|
|
772
711
|
const camLocation = new Vector3_1.Vector3(position);
|
|
773
712
|
camLocation.z += (5) + 1;
|
|
774
|
-
|
|
713
|
+
this.agent.currentRegion.clientCommands.agent.setCamera(camLocation, position, 256, new Vector3_1.Vector3([-1.0, 0, 0]), new Vector3_1.Vector3([0.0, 1.0, 0]));
|
|
775
714
|
this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
776
|
-
})
|
|
715
|
+
});
|
|
777
716
|
}
|
|
778
|
-
rezInWorld(position, objectScale) {
|
|
779
|
-
return new Promise((resolve, reject) =>
|
|
717
|
+
async rezInWorld(position, objectScale) {
|
|
718
|
+
return new Promise((resolve, reject) => {
|
|
780
719
|
if (this.agent === undefined) {
|
|
781
720
|
reject(new Error('This InventoryItem is local only, so cant rez'));
|
|
782
721
|
return;
|
|
@@ -789,7 +728,7 @@ class InventoryItem {
|
|
|
789
728
|
GroupID: UUID_1.UUID.zero()
|
|
790
729
|
};
|
|
791
730
|
msg.RezData = {
|
|
792
|
-
FromTaskID: (this.container instanceof
|
|
731
|
+
FromTaskID: (this.container instanceof GameObject_1.GameObject) ? this.container.FullID : UUID_1.UUID.zero(),
|
|
793
732
|
BypassRaycast: 1,
|
|
794
733
|
RayStart: position,
|
|
795
734
|
RayEnd: position,
|
|
@@ -839,63 +778,69 @@ class InventoryItem {
|
|
|
839
778
|
}, 10000);
|
|
840
779
|
let claimedPrim = false;
|
|
841
780
|
const agent = this.agent;
|
|
842
|
-
objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) =>
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
if (evt.
|
|
848
|
-
if (
|
|
849
|
-
objSub
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
781
|
+
objSub = this.agent.currentRegion.clientEvents.onNewObjectEvent.subscribe((evt) => {
|
|
782
|
+
(async () => {
|
|
783
|
+
if (evt.createSelected && !evt.object.resolvedAt) {
|
|
784
|
+
await agent.currentRegion.clientCommands.region.resolveObject(evt.object, {});
|
|
785
|
+
}
|
|
786
|
+
if (evt.createSelected && !evt.object.claimedForBuild && !claimedPrim) {
|
|
787
|
+
if (evt.object.itemID?.equals(this.itemID)) {
|
|
788
|
+
if (objSub !== undefined) {
|
|
789
|
+
objSub.unsubscribe();
|
|
790
|
+
objSub = undefined;
|
|
791
|
+
}
|
|
792
|
+
if (timeout !== undefined) {
|
|
793
|
+
clearTimeout(timeout);
|
|
794
|
+
timeout = undefined;
|
|
795
|
+
}
|
|
796
|
+
evt.object.claimedForBuild = true;
|
|
797
|
+
claimedPrim = true;
|
|
798
|
+
resolve(evt.object);
|
|
855
799
|
}
|
|
856
|
-
evt.object.claimedForBuild = true;
|
|
857
|
-
claimedPrim = true;
|
|
858
|
-
resolve(evt.object);
|
|
859
800
|
}
|
|
860
|
-
}
|
|
861
|
-
|
|
801
|
+
})().catch((_e) => {
|
|
802
|
+
});
|
|
803
|
+
});
|
|
862
804
|
let height = 10;
|
|
863
805
|
if (objectScale !== undefined) {
|
|
864
806
|
height = objectScale.z;
|
|
865
807
|
}
|
|
866
808
|
const camLocation = new Vector3_1.Vector3(position);
|
|
867
809
|
camLocation.z += (height / 2) + 1;
|
|
868
|
-
|
|
810
|
+
this.agent.currentRegion.clientCommands.agent.setCamera(camLocation, position, height, new Vector3_1.Vector3([-1.0, 0, 0]), new Vector3_1.Vector3([0.0, 1.0, 0]));
|
|
869
811
|
this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
870
|
-
})
|
|
812
|
+
});
|
|
871
813
|
}
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
814
|
+
async rename(newName) {
|
|
815
|
+
this.name = newName;
|
|
816
|
+
if (this.agent === undefined) {
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
if (this.container instanceof GameObject_1.GameObject) {
|
|
878
820
|
const msg = new UpdateTaskInventory_1.UpdateTaskInventoryMessage();
|
|
821
|
+
if (this.description == '') {
|
|
822
|
+
this.description = '(No Description)';
|
|
823
|
+
}
|
|
879
824
|
msg.AgentData = {
|
|
880
825
|
AgentID: this.agent.agentID,
|
|
881
826
|
SessionID: this.agent.currentRegion.circuit.sessionID
|
|
882
827
|
};
|
|
883
828
|
msg.UpdateData = {
|
|
884
829
|
Key: 0,
|
|
885
|
-
LocalID:
|
|
830
|
+
LocalID: this.container.ID
|
|
886
831
|
};
|
|
887
832
|
msg.InventoryData = {
|
|
888
833
|
ItemID: this.itemID,
|
|
889
834
|
FolderID: this.parentID,
|
|
890
835
|
CreatorID: this.permissions.creator,
|
|
891
|
-
OwnerID: this.
|
|
836
|
+
OwnerID: this.agent.agentID,
|
|
892
837
|
GroupID: this.permissions.group,
|
|
893
838
|
BaseMask: this.permissions.baseMask,
|
|
894
839
|
OwnerMask: this.permissions.ownerMask,
|
|
895
840
|
GroupMask: this.permissions.groupMask,
|
|
896
841
|
EveryoneMask: this.permissions.everyoneMask,
|
|
897
842
|
NextOwnerMask: this.permissions.nextOwnerMask,
|
|
898
|
-
GroupOwned: this.permissions.groupOwned
|
|
843
|
+
GroupOwned: this.permissions.groupOwned ?? false,
|
|
899
844
|
TransactionID: UUID_1.UUID.zero(),
|
|
900
845
|
Type: this.type,
|
|
901
846
|
InvType: this.inventoryType,
|
|
@@ -908,85 +853,148 @@ class InventoryItem {
|
|
|
908
853
|
CRC: this.getCRC()
|
|
909
854
|
};
|
|
910
855
|
return this.agent.currentRegion.circuit.waitForAck(this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable), 10000);
|
|
856
|
+
}
|
|
857
|
+
else if (this.container instanceof InventoryFolder_1.InventoryFolder) {
|
|
858
|
+
this.name = newName;
|
|
859
|
+
return this.update();
|
|
860
|
+
}
|
|
861
|
+
else {
|
|
862
|
+
throw new Error('Item has no container, cannot be renamed');
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
async isScriptRunning() {
|
|
866
|
+
if (this.type !== AssetType_1.AssetType.LSLText) {
|
|
867
|
+
throw new Error('Item is not a script');
|
|
868
|
+
}
|
|
869
|
+
if (!(this.container instanceof GameObject_1.GameObject)) {
|
|
870
|
+
throw new Error('Script can only be running inside a GameObject container');
|
|
871
|
+
}
|
|
872
|
+
const isr = new GetScriptRunning_1.GetScriptRunningMessage();
|
|
873
|
+
isr.Script = {
|
|
874
|
+
ObjectID: this.container.FullID,
|
|
875
|
+
ItemID: this.itemID
|
|
876
|
+
};
|
|
877
|
+
const objID = this.container.FullID;
|
|
878
|
+
const event = this.container.region.clientEvents.waitForEvent(this.container.region.clientEvents.onScriptRunningReply, (evt) => {
|
|
879
|
+
if (evt.ItemID.equals(this.itemID) &&
|
|
880
|
+
evt.ObjectID.equals(objID)) {
|
|
881
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
882
|
+
}
|
|
883
|
+
return FilterResponse_1.FilterResponse.NoMatch;
|
|
884
|
+
});
|
|
885
|
+
const legacy = this.container.region.circuit.sendAndWaitForMessage(isr, PacketFlags_1.PacketFlags.Reliable, Message_1.Message.ScriptRunningReply, 10000, (message) => {
|
|
886
|
+
if (message.Script.ItemID.equals(this.itemID) &&
|
|
887
|
+
message.Script.ObjectID.equals(objID)) {
|
|
888
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
889
|
+
}
|
|
890
|
+
return FilterResponse_1.FilterResponse.NoMatch;
|
|
911
891
|
});
|
|
892
|
+
const result = await Promise.race([event, legacy]);
|
|
893
|
+
if (result instanceof ScriptRunningReply_1.ScriptRunningReplyMessage) {
|
|
894
|
+
this.scriptRunning = result.Script.Running;
|
|
895
|
+
}
|
|
896
|
+
else {
|
|
897
|
+
this.scriptRunning = result.Running;
|
|
898
|
+
this.scriptMono = result.Mono;
|
|
899
|
+
}
|
|
900
|
+
return this.scriptRunning;
|
|
912
901
|
}
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
902
|
+
async copyTo(target, name) {
|
|
903
|
+
const msg = new CopyInventoryItem_1.CopyInventoryItemMessage();
|
|
904
|
+
if (this.agent === undefined) {
|
|
905
|
+
throw new Error('No active agent');
|
|
906
|
+
}
|
|
907
|
+
msg.AgentData = {
|
|
908
|
+
AgentID: this.agent.agentID,
|
|
909
|
+
SessionID: this.agent.currentRegion.circuit.sessionID
|
|
910
|
+
};
|
|
911
|
+
const bytes = crypto.randomBytes(4);
|
|
912
|
+
const callbackID = bytes.readUInt32LE(0);
|
|
913
|
+
msg.InventoryData = [{
|
|
914
|
+
CallbackID: callbackID,
|
|
915
|
+
OldAgentID: this.agent.agentID,
|
|
916
|
+
OldItemID: this.itemID,
|
|
917
|
+
NewFolderID: target.folderID,
|
|
918
|
+
NewName: Utils_1.Utils.StringToBuffer(name)
|
|
919
|
+
}];
|
|
920
|
+
this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
921
|
+
const cbMsg = await this.waitForCallbackID(callbackID);
|
|
922
|
+
for (const cbItem of cbMsg.itemData) {
|
|
923
|
+
if (cbItem.callbackID === callbackID) {
|
|
924
|
+
const item = await this.agent.inventory.fetchInventoryItem(cbItem.itemID);
|
|
925
|
+
if (item !== null) {
|
|
926
|
+
return item;
|
|
923
927
|
}
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
throw new Error('Unable to locate inventory item after copy');
|
|
927
931
|
}
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
932
|
+
async updateScript(scriptAsset, running = true, target = 'mono') {
|
|
933
|
+
if (this.agent === undefined) {
|
|
934
|
+
throw new Error('This item was created locally and can\'t be updated');
|
|
935
|
+
}
|
|
936
|
+
if (this.container instanceof GameObject_1.GameObject) {
|
|
937
|
+
try {
|
|
938
|
+
const result = await this.agent.currentRegion.caps.capsPostXML('UpdateScriptTask', {
|
|
939
|
+
'item_id': new LLSD.UUID(this.itemID.toString()),
|
|
940
|
+
'task_id': new LLSD.UUID(this.container.FullID.toString()),
|
|
941
|
+
'is_script_running': running ? 1 : 0,
|
|
942
|
+
'target': target
|
|
943
|
+
});
|
|
944
|
+
if (result.uploader) {
|
|
945
|
+
const uploader = result.uploader;
|
|
946
|
+
const uploadResult = await this.agent.currentRegion.caps.capsRequestUpload(uploader, scriptAsset);
|
|
947
|
+
if (uploadResult.state && uploadResult.state === 'complete') {
|
|
948
|
+
return new UUID_1.UUID(uploadResult.new_asset.toString());
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
throw new Error('Asset upload failed');
|
|
933
952
|
}
|
|
953
|
+
catch (err) {
|
|
954
|
+
console.error(err);
|
|
955
|
+
throw err;
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
else {
|
|
959
|
+
throw new Error('Agent inventory not supported just yet');
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
async setScriptRunning(running) {
|
|
963
|
+
if (this.agent === undefined) {
|
|
964
|
+
throw new Error('This item was created locally and can\'t be updated');
|
|
965
|
+
}
|
|
966
|
+
if (this.type !== AssetType_1.AssetType.LSLText) {
|
|
967
|
+
throw new Error('This is not a script');
|
|
968
|
+
}
|
|
969
|
+
if (this.container instanceof GameObject_1.GameObject) {
|
|
970
|
+
const msg = new SetScriptRunning_1.SetScriptRunningMessage();
|
|
934
971
|
msg.AgentData = {
|
|
935
972
|
AgentID: this.agent.agentID,
|
|
936
|
-
SessionID: this.agent.currentRegion.circuit.sessionID
|
|
973
|
+
SessionID: this.agent.currentRegion.circuit.sessionID,
|
|
937
974
|
};
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
for (const cbItem of cbMsg.itemData) {
|
|
950
|
-
if (cbItem.callbackID === callbackID) {
|
|
951
|
-
const item = yield this.agent.inventory.fetchInventoryItem(cbItem.itemID);
|
|
952
|
-
if (item !== null) {
|
|
953
|
-
return item;
|
|
954
|
-
}
|
|
955
|
-
}
|
|
956
|
-
}
|
|
957
|
-
throw new Error('Unable to locate inventory item after copy');
|
|
958
|
-
});
|
|
975
|
+
msg.Script = {
|
|
976
|
+
ObjectID: this.container.FullID,
|
|
977
|
+
ItemID: this.itemID,
|
|
978
|
+
Running: running
|
|
979
|
+
};
|
|
980
|
+
const ack = this.agent.currentRegion.circuit.sendMessage(msg, PacketFlags_1.PacketFlags.Reliable);
|
|
981
|
+
return this.agent.currentRegion.circuit.waitForAck(ack, 10000);
|
|
982
|
+
}
|
|
983
|
+
else {
|
|
984
|
+
throw new Error('Script must be in an object to set state');
|
|
985
|
+
}
|
|
959
986
|
}
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
'item_id': new LLSD.UUID(this.itemID.toString()),
|
|
969
|
-
'task_id': new LLSD.UUID(this.container.FullID.toString()),
|
|
970
|
-
'is_script_running': true,
|
|
971
|
-
'target': 'mono'
|
|
972
|
-
});
|
|
973
|
-
if (result['uploader']) {
|
|
974
|
-
const uploader = result['uploader'];
|
|
975
|
-
const uploadResult = yield this.agent.currentRegion.caps.capsRequestUpload(uploader, scriptAsset);
|
|
976
|
-
if (uploadResult['state'] && uploadResult['state'] === 'complete') {
|
|
977
|
-
return new UUID_1.UUID(uploadResult['new_asset'].toString());
|
|
978
|
-
}
|
|
979
|
-
}
|
|
980
|
-
throw new Error('Asset upload failed');
|
|
981
|
-
}
|
|
982
|
-
catch (err) {
|
|
983
|
-
console.error(err);
|
|
984
|
-
throw err;
|
|
987
|
+
async waitForCallbackID(callbackID) {
|
|
988
|
+
if (!this.agent) {
|
|
989
|
+
throw new Error('No active agent');
|
|
990
|
+
}
|
|
991
|
+
return Utils_1.Utils.waitOrTimeOut(this.agent.currentRegion.clientEvents.onBulkUpdateInventoryEvent, 10000, (event) => {
|
|
992
|
+
for (const item of event.itemData) {
|
|
993
|
+
if (item.callbackID === callbackID) {
|
|
994
|
+
return FilterResponse_1.FilterResponse.Finish;
|
|
985
995
|
}
|
|
986
996
|
}
|
|
987
|
-
|
|
988
|
-
throw new Error('Agent inventory not supported just yet');
|
|
989
|
-
}
|
|
997
|
+
return FilterResponse_1.FilterResponse.NoMatch;
|
|
990
998
|
});
|
|
991
999
|
}
|
|
992
1000
|
}
|