async def activate_render_context_hook(self, *, wait_for_ready: bool = True, timeout: float = None): """ Activate render context hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be witten (None for no timeout) """ if self._check_if_hook_active(RenderContextHook): raise HookAlreadyActivated("Render context") await self._check_for_autobot() render_context_hook = RenderContextHook(self) await render_context_hook.hook() self._active_hooks.append(render_context_hook) self._base_addrs[ "current_render_context"] = render_context_hook.current_render_context_addr if wait_for_ready: await self._wait_for_value( render_context_hook.current_render_context_addr, timeout)
async def activate_client_hook(self, *, wait_for_ready: bool = True, timeout: float = None): """ Activate client hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be witten (None for no timeout) """ if self._check_if_hook_active(ClientHook): raise HookAlreadyActivated("Client") await self._check_for_autobot() client_hook = ClientHook(self) await client_hook.hook() self._active_hooks.append(client_hook) self._base_addrs["current_client"] = client_hook.current_client_addr if wait_for_ready: await self._wait_for_value(client_hook.current_client_addr, timeout)
async def activate_root_window_hook(self, *, wait_for_ready: bool = True, timeout: float = None): """ Activate root window hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be witten (None for no timeout) """ if self._check_if_hook_active(RootWindowHook): raise HookAlreadyActivated("Root window") await self._check_for_autobot() root_window_hook = RootWindowHook(self) await root_window_hook.hook() self._active_hooks.append(root_window_hook) self._base_addrs[ "current_root_window"] = root_window_hook.current_root_window_addr if wait_for_ready: await self._wait_for_value( root_window_hook.current_root_window_addr, timeout)
async def activate_duel_hook(self, *, wait_for_ready: bool = False, timeout: float = None): """ Activate duel hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be written (None for no timeout) """ if self._check_if_hook_active(DuelHook): raise HookAlreadyActivated("Duel") await self._check_for_autobot() duel_hook = DuelHook(self) await duel_hook.hook() self._active_hooks.append(duel_hook) self._base_addrs["current_duel"] = duel_hook.current_duel_addr self._base_addrs["current_duel_phase"] = duel_hook.current_duel_phase if wait_for_ready: await self._wait_for_value(duel_hook.current_duel_addr, timeout)
async def wrapped(*args, **kwargs): memory_handler = args[0] if memory_handler.active_hooks[hook]: raise HookAlreadyActivated(hook) memory_handler.set_hook_active(hook) return await function(*args, **kwargs)
async def activate_mouseless_cursor_hook(self): """ Activate mouseless cursor hook """ if self._check_if_hook_active(MouselessCursorMoveHook): raise HookAlreadyActivated("Mouseless cursor") await self._check_for_autobot() mouseless_cursor_hook = MouselessCursorMoveHook(self) await mouseless_cursor_hook.hook() self._active_hooks.append(mouseless_cursor_hook) self._base_addrs[ "mouse_position"] = mouseless_cursor_hook.mouse_pos_addr await self.write_mouse_position(0, 0)
async def activate_player_stat_hook(self, *, wait_for_ready: bool = True, timeout: float = None): """ Activate player stat hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be witten (None for no timeout) """ if self._check_if_hook_active(PlayerStatHook): raise HookAlreadyActivated("Player stat") await self._check_for_autobot() player_stat_hook = PlayerStatHook(self) await player_stat_hook.hook() self._active_hooks.append(player_stat_hook) self._base_addrs["player_stat_struct"] = player_stat_hook.stat_addr if wait_for_ready: await self._wait_for_value(player_stat_hook.stat_addr, timeout)
async def activate_quest_hook(self, *, wait_for_ready: bool = False, timeout: float = None): """ Activate quest hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be witten (None for no timeout) """ if self._check_if_hook_active(QuestHook): raise HookAlreadyActivated("Quest") await self._check_for_autobot() quest_hook = QuestHook(self) await quest_hook.hook() self._active_hooks.append(quest_hook) self._base_addrs["quest_struct"] = quest_hook.cord_struct if wait_for_ready: await self._wait_for_value(quest_hook.cord_struct, timeout)
async def activate_movement_teleport_hook(self, *, wait_for_ready: bool = False, timeout: float = None): """ Activate movement teleport hook wait_for_ready is useless for this hook Keyword Args: wait_for_ready: Wait for hook values to be written timeout: How long to wait for hook values to be written (None for no timeout) """ if self._check_if_hook_active(MovementTeleportHook): raise HookAlreadyActivated("Movement teleport") await self._check_for_autobot() movement_teleport_hook = MovementTeleportHook(self) await movement_teleport_hook.hook() self._active_hooks.append(movement_teleport_hook) self._base_addrs[ "teleport_helper"] = movement_teleport_hook.teleport_helper