2022-05-13 13:36:37 +00:00
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 ( )
print ( " " )
for setting in lv :
print ( colored ( colorama . Fore . BLACK , setting + " = " + str ( lv [ setting ] ) ) )
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
if not lv [ " osName " ] in [ " windows " , " linux " , " macos " ] :
2022-05-18 00:29:33 +00:00
print ( colored ( colorama . Fore . YELLOW , " \n Warning, 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. " ) )
2022-05-18 00:09:01 +00:00
lv [ " osName " ] = " linux "
2022-05-13 13:36:37 +00:00
2022-05-18 12:54:39 +00:00
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 , " \n Warning, 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
2022-05-13 13:36:37 +00:00
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: " )