from threading import Thread from cheat import Cheat, sleep if __name__ == "__main__": # Cheat c = Cheat() # Cheat list print("Enter 0 to exit.") print("You can run multiples cheat at once, separate your choices with a space.") print("Available cheats:") for idx, cheat in enumerate(c.cheats_list): print(f"#{idx + 1} - {cheat}") # Select cheat c_id = None while c_id == None: try: response = [int(i) for i in input("Enter ID: ").split(" ")] c_id = [] for i in response: match i: case 0: exit(0) case j if j > len(c.cheats_list): raise IndexError case _: c_id.append(i - 1) except KeyboardInterrupt: print("??\nBye.") exit(1) except: print("Invalid ID.") # Instanciate and run threads for fn in [c.cheats_list[i] for i in c_id]: print(f"Running {fn}...") t = Thread(target=getattr(c, fn)) t.daemon = True t.start() # Don't close the main thread as cheats are daemons while True: sleep(1000000)