def enable_callbacks(self): """ enable the Agents() callback handlers for packet received events """ if self.settings.ENABLE_INVENTORY_MANAGEMENT: while self.region.capabilities == {}: eventlet.sleep(5) inventory_caps = ['FetchInventory', 'WebFetchInventoryDescendents', 'FetchLib', 'FetchLibDescendents'] if sets.Set(self.region.capabilities.keys()).intersection(inventory_caps): caps = dict([(capname, self.region.capabilities[capname]) for capname in inventory_caps]) logger.info("Using the capability based inventory management mechanism") self.inventory = AIS(self, caps) else: logger.info("Using the UDP based inventory management mechanism") self.inventory = UDP_Inventory(self) self.inventory._parse_folders_from_login_response() self.inventory.enable_callbacks() if self.settings.ENABLE_APPEARANCE_MANAGEMENT: self.appearance.enable_callbacks() if self.settings.ENABLE_GROUP_CHAT: self.group_manager.enable_callbacks() if self.settings.MULTIPLE_SIM_CONNECTIONS: onEnableSimulator_received = self.region.message_handler.register('EnableSimulator') onEnableSimulator_received.subscribe(self.onEnableSimulator) onEstablishAgentCommunication_received = self.region.message_handler.register('EstablishAgentCommunication') onEstablishAgentCommunication_received.subscribe(self.onEstablishAgentCommunication) # enable callbacks for the agent class to set up handling for related messages onAlertMessage_received = self.region.message_handler.register('AlertMessage') onAlertMessage_received.subscribe(self.onAlertMessage) onAgentDataUpdate_received = self.region.message_handler.register('AgentDataUpdate') onAgentDataUpdate_received.subscribe(self.onAgentDataUpdate) onAgentMovementComplete_received = self.region.message_handler.register('AgentMovementComplete') onAgentMovementComplete_received.subscribe(self.onAgentMovementComplete) onHealthMessage_received = self.region.message_handler.register('HealthMessage') onHealthMessage_received.subscribe(self.onHealthMessage) onImprovedInstantMessage_received = self.region.message_handler.register('ImprovedInstantMessage') onImprovedInstantMessage_received.subscribe(self.onImprovedInstantMessage) self.region.message_handler.register('TeleportStart').subscribe(self.simple_callback('Info')) self.region.message_handler.register('TeleportProgress').subscribe(self.simple_callback('Info')) self.region.message_handler.register('TeleportFailed').subscribe(self.simple_callback('Info')) self.region.message_handler.register('TeleportFinish').subscribe(self.onTeleportFinish) self.region.message_handler.register('OfflineNotification').subscribe(self.simple_callback('AgentBlock')) self.region.message_handler.register('OnlineNotification').subscribe(self.simple_callback('AgentBlock')) self.region.message_handler.register('MoneyBalanceReply').subscribe(self.simple_callback('MoneyData')) self.region.message_handler.register('RoutedMoneyBalanceReply').subscribe(self.simple_callback('MoneyData')) if self.settings.ENABLE_COMMUNICATIONS_TRACKING: onChatFromSimulator_received = self.region.message_handler.register('ChatFromSimulator') onChatFromSimulator_received.subscribe(self.onChatFromSimulator) onAvatarAnimation_received = self.region.message_handler.register('AvatarAnimation') onAvatarAnimation_received.subscribe(self.onAvatarAnimation)
def onAgentConnected(self, agent): self.inventory = UDP_Inventory(agent) self.filename = None self.xfer_list = defaultdict(str)