Download libraries and natives
This commit is contained in:
parent
c81275856a
commit
85ed5326c2
@ -118,10 +118,21 @@ def processVersion(versionsPath,libraryPath,nativePath,version):
|
|||||||
|
|
||||||
for library in clientJson["libraries"]:
|
for library in clientJson["libraries"]:
|
||||||
if "downloads" in library:
|
if "downloads" in library:
|
||||||
|
# Libraries
|
||||||
if "artifact" in library["downloads"]:
|
if "artifact" in library["downloads"]:
|
||||||
library["downloads"]["artifact"]["path"] = library["downloads"]["artifact"]["path"].replace("/",os.path.sep)
|
library["downloads"]["artifact"]["path"] = library["downloads"]["artifact"]["path"].replace("/",os.path.sep)
|
||||||
libraries.append(p(libraryPath,library["downloads"]["artifact"]["path"]))
|
libraries.append(p(libraryPath,library["downloads"]["artifact"]["path"]))
|
||||||
|
if "url" in library["downloads"]["artifact"] and library["downloads"]["artifact"]["url"] != "":
|
||||||
|
downloadLibraries[p(libraryPath,library["downloads"]["artifact"]["path"])] = library["downloads"]["artifact"]["url"]
|
||||||
|
|
||||||
|
# Natives
|
||||||
if "classifiers" in library["downloads"]:
|
if "classifiers" in library["downloads"]:
|
||||||
|
for classifier in library["downloads"]["classifiers"]:
|
||||||
|
native = library["downloads"]["classifiers"][classifier]
|
||||||
|
native["path"] = native["path"].replace("/",os.path.sep)
|
||||||
|
if "url" in native and native["url"] != "":
|
||||||
|
downloadLibraries[p(nativePath,native["path"])] = native["url"]
|
||||||
|
|
||||||
native = False
|
native = False
|
||||||
if "natives-" +lv["osName"] in library["downloads"]["classifiers"]:
|
if "natives-" +lv["osName"] in library["downloads"]["classifiers"]:
|
||||||
native = library["downloads"]["classifiers"]["natives-" +lv["osName"]]
|
native = library["downloads"]["classifiers"]["natives-" +lv["osName"]]
|
||||||
@ -130,10 +141,9 @@ def processVersion(versionsPath,libraryPath,nativePath,version):
|
|||||||
native = library["downloads"]["classifiers"]["natives-osx"]
|
native = library["downloads"]["classifiers"]["natives-osx"]
|
||||||
|
|
||||||
if native != False:
|
if native != False:
|
||||||
native["path"] = native["path"].replace("/",os.path.sep)
|
|
||||||
natives.append(p(nativePath,native["path"]))
|
natives.append(p(nativePath,native["path"]))
|
||||||
elif "name" in library:
|
elif "name" in library:
|
||||||
#net.fabricmc:sponge-mixin:0.9.2+mixin.0.8.2
|
# Stupid libraries
|
||||||
libSplit = library["name"].rsplit(":",1)
|
libSplit = library["name"].rsplit(":",1)
|
||||||
libVersion = libSplit[1]
|
libVersion = libSplit[1]
|
||||||
libName = libSplit[0].rsplit(":",1)[1]
|
libName = libSplit[0].rsplit(":",1)[1]
|
||||||
@ -147,7 +157,7 @@ def processVersion(versionsPath,libraryPath,nativePath,version):
|
|||||||
fullUrl = fullUrl + "/" + libPath
|
fullUrl = fullUrl + "/" + libPath
|
||||||
downloadLibraries[p(libraryPath,library["path"])] = fullUrl
|
downloadLibraries[p(libraryPath,library["path"])] = fullUrl
|
||||||
|
|
||||||
libraries.append(p(versionPath,version + ".jar"))
|
if os.path.isfile(p(versionPath,version + ".jar")): libraries.append(p(versionPath,version + ".jar"))
|
||||||
|
|
||||||
if "arguments" in clientJson:
|
if "arguments" in clientJson:
|
||||||
for arg in clientJson["arguments"]["game"]:
|
for arg in clientJson["arguments"]["game"]:
|
||||||
@ -215,11 +225,18 @@ def main():
|
|||||||
if lv["osName"] != "windows": separator = ":"
|
if lv["osName"] != "windows": separator = ":"
|
||||||
libraryList = separator.join(libraries)
|
libraryList = separator.join(libraries)
|
||||||
|
|
||||||
print("Downloading libraries...")
|
print("\nLibraries:")
|
||||||
|
for library in libraries:
|
||||||
|
print("- " +library)
|
||||||
|
|
||||||
|
print("\nDownloading libraries...")
|
||||||
for library in downloadLibraries:
|
for library in downloadLibraries:
|
||||||
fileDl(downloadLibraries[library],library,read = False)
|
fileDl(downloadLibraries[library],library,read = False)
|
||||||
|
|
||||||
print("Extracting natives...")
|
for library in libraries:
|
||||||
|
if not os.path.isfile(library): print("Warning, missing lib: " +library)
|
||||||
|
|
||||||
|
print("\nExtracting natives...")
|
||||||
if not os.path.isdir(nativesOutPath): os.makedirs(nativesOutPath)
|
if not os.path.isdir(nativesOutPath): os.makedirs(nativesOutPath)
|
||||||
for native in natives:
|
for native in natives:
|
||||||
subprocess.run(["7z","x",native,"-o" +nativesOutPath,"-aos"],check=True,stdout=subprocess.DEVNULL)
|
subprocess.run(["7z","x",native,"-o" +nativesOutPath,"-aos"],check=True,stdout=subprocess.DEVNULL)
|
||||||
@ -250,7 +267,7 @@ def main():
|
|||||||
arg = arg.replace("${" +var+ "}",launcherVariables[var])
|
arg = arg.replace("${" +var+ "}",launcherVariables[var])
|
||||||
args.append(arg)
|
args.append(arg)
|
||||||
|
|
||||||
print("Launching Minecraft...")
|
print("\nLaunching Minecraft...")
|
||||||
if lv["console"] == "1":
|
if lv["console"] == "1":
|
||||||
subprocess.run([lv["java"]] + args,check = True)
|
subprocess.run([lv["java"]] + args,check = True)
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user