print(colored(colorama.Fore.GREEN,"Reading config...")) config = configparser.ConfigParser() config.optionxform = str config.read(p(omlPath,"config.ini")) global lv lv = config["default"] for var in lv: glbs = globals().copy() for glb in glbs: lv[var] = lv[var].replace("$+" +glb+ "$",str(glbs[glb])) lcs = locals().copy() for lc in lcs: lv[var] = lv[var].replace("$" +lc+ "$",str(lcs[lc])) if lv["osName"] == "": lv["osName"] = platform.system().lower() if lv["osName"] == "darwin": lv["osName"] = "macos" if lv["osVersion"] == "": lv["osVersion"] = platform.version() if len(sys.argv) > 1: for arg in sys.argv[1:]: if arg.startswith("-"): continue argSplit = arg.split("=",1) if len(argSplit) > 1: lv[argSplit[0]] = argSplit[1] else: lv[argSplit[0]] = True for setting in lv: print(colored(colorama.Fore.BLACK,setting+ "=" +str(lv[setting]))) print("") if not lv["osName"] in ["windows","linux","macos"]: print(colored(colorama.Fore.YELLOW,"\nWarning, unsupported OS detected: '" +lv["osName"]+ "'. Needs to be either windows, linux or macos. Define it with osName=name in the config."),file=sys.stderr) print(colored(colorama.Fore.MAGENTA,"Falling back to assuming Linux.")) lv["osName"] = "linux" if not "-downloadonly" in sys.argv: print(colored(colorama.Fore.GREEN,"Checking for Java...")) global javaExe javaExe = whereis(lv["java"]) if javaExe == None: print(colored(colorama.Fore.RED,"Java wasn't found at '" +lv["java"]+ "'. Please configure java in config.ini.")) sys.exit(1) if lv["jvmArch"] == "": print(colored(colorama.Fore.GREEN,"Querying JVM architecture... "),end="") try: if lv["osName"] != "windows": with open(javaExe,"rb") as jh: jh.seek(4) if int.from_bytes(jh.read(1),"little") == 1: lv["jvmArch"] = "x86" print("x86") else: lv["jvmArch"] = "amd64" print("Not x86, assuming amd64") else: with open(javaExe,"rb") as jh: jh.seek(60) jh.seek(int.from_bytes(jh.read(2),"little") + 4) if int.from_bytes(jh.read(2),"little") == 332: lv["jvmArch"] = "x86" print("x86") else: lv["jvmArch"] = "amd64" print("Not x86, assuming amd64") except: print(colored(colorama.Fore.YELLOW,"\nWarning, could not query JVM architecture. Needs to be either amd64 or x86. Define it with jvmArch=arch in the config."),file=sys.stderr) print(colored(colorama.Fore.MAGENTA,"Assuming amd64.")) raise print("") if not "version" in lv: lv["version"] = input("Version ID: ") if "-downloadonly" in sys.argv: lv["name"] = "Player" if not "name" in lv: lv["name"] = input("Player name: ")