This repository has been archived on 2023-09-02. You can view files and clone it, but cannot push or open issues or pull requests.
csh/main.py

59 lines
1.7 KiB
Python
Raw Normal View History

2023-04-01 16:11:56 +02:00
from sys import argv
2023-03-30 21:00:20 +02:00
from threading import Thread
2023-03-30 11:26:52 +02:00
2023-03-31 02:44:37 +02:00
from cheat import Cheat, sleep
2023-03-30 11:26:52 +02:00
if __name__ == "__main__":
2023-04-01 16:11:56 +02:00
c_id = []
args = {}
if (len(argv) > 1):
# User wanna use offline offsets
if "--offline" in argv:
args["offline"] = True
# User gave a list of cheats
# Will bypass the interactive selection
c_id = [int(j) for j in [i for i in argv if i.startswith(
"--list=")][0][7:].split(",")]
# Load cheat class
c = Cheat(**args)
# Interactive selection
if (c_id == []):
# 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}")
while c_id == []:
try:
response = [int(i) for i in input("Enter ID: ").split(" ")]
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.")
2023-03-30 21:00:20 +02:00
# Instanciate and run threads
2023-03-30 21:07:52 +02:00
for fn in [c.cheats_list[i] for i in c_id]:
print(f"Running {fn}...")
2023-03-30 21:00:20 +02:00
t = Thread(target=getattr(c, fn))
t.daemon = True
t.start()
2023-03-30 21:07:52 +02:00
# Don't close the main thread as cheats are daemons
2023-03-30 21:00:20 +02:00
while True:
sleep(1000000)