diff --git a/hippolyzer/lib/client/hippo_client.py b/hippolyzer/lib/client/hippo_client.py index b0f6ed6..df77aa4 100644 --- a/hippolyzer/lib/client/hippo_client.py +++ b/hippolyzer/lib/client/hippo_client.py @@ -26,6 +26,7 @@ from hippolyzer.lib.base.templates import RegionHandshakeReplyFlags from hippolyzer.lib.base.transfer_manager import TransferManager from hippolyzer.lib.base.xfer_manager import XferManager from hippolyzer.lib.client.asset_uploader import AssetUploader +from hippolyzer.lib.client.inventory_manager import InventoryManager from hippolyzer.lib.client.object_manager import ClientObjectManager, ClientWorldObjectManager from hippolyzer.lib.client.state import BaseClientSession, BaseClientRegion, BaseClientSessionManager @@ -131,6 +132,7 @@ class HippoClientSession(BaseClientSession): super().__init__(id, secure_session_id, agent_id, circuit_code, session_manager, login_data=login_data) self.http_session = session_manager.http_session self.objects = ClientWorldObjectManager(proxify(self), session_manager.settings, None) + self.inventory_manager = InventoryManager(proxify(self)) self.transport: Optional[SocketUDPTransport] = None self.protocol: Optional[HippoClientProtocol] = None self.message_handler.take_by_default = False @@ -139,7 +141,7 @@ class HippoClientSession(BaseClientSession): handle: Optional[int] = None) -> HippoClientRegion: return super().register_region(circuit_addr, seed_url, handle) # type:ignore - async def open_circuit(self, circuit_addr): + async def open_circuit(self, circuit_addr: ADDR_TUPLE): for region in self.regions: if region.circuit_addr == circuit_addr: valid_circuit = False diff --git a/tests/client/test_hippo_client.py b/tests/client/test_hippo_client.py index 4a13d49..46b2116 100644 --- a/tests/client/test_hippo_client.py +++ b/tests/client/test_hippo_client.py @@ -87,6 +87,10 @@ class TestHippoClient(unittest.IsolatedAsyncioTestCase): "region_x": 0, "region_y": 123, "seed_capability": "https://127.0.0.1:4/foo", + "inventory-skeleton": [ + {'name': 'My Inventory', 'folder_id': str(UUID(int=4)), + 'parent_id': '00000000-0000-0000-0000-000000000000', 'type_default': 8, 'version': 200} + ] } FAKE_SEED_RESP = { "EventQueueGet": "https://127.0.0.1:5/", @@ -149,3 +153,7 @@ class TestHippoClient(unittest.IsolatedAsyncioTestCase): ("ViewerFrozenMessage",), ) as get_msg: assert (await _soon(get_msg)).name == "ViewerFrozenMessage" + + async def test_inventory_manager(self): + await self._log_client_in(self.client) + self.assertEqual(self.client.session.inventory_manager.model.root.node_id, UUID(int=4))