setup method
Implementation
Future<MinecraftClientPreparer> setup(String version) async {
this.version_name = version;
http.Response response = await http.get('https://launchermeta.mojang.com/mc/game/version_manifest.json');
this.version_manifest = json.decode(response.body);
if(await File("$root/versions/$version/$version.json").exists()) {
this.version = json.decode(await new File("$root/versions/$version/$version.json").readAsString());
}
else {
for(Map<String,dynamic> value in version_manifest["versions"]) {
if(value["id"] != version) continue;
this.version = json.decode((await http.get(value["url"])).body);
break;
}
if(this.version == null) throw("Version $version does not exist!");
}
if(this.version["inheritsFrom"] != null) {
print("Version $version inerhits from version ${this.version["inheritsFrom"]}, needing to get this version first!");
MinecraftClientPreparer preparer = await new MinecraftClientPreparer(root).install(this.version["inheritsFrom"]);
this.parent = preparer;
Map<String, dynamic> tmp = this.version;
this.version = mergeMap([json.decode(json.encode(preparer.version)),tmp]);
this.version["arguments"]["game"].addAll(preparer.version["arguments"]["game"]);
this.version["libraries"].addAll(preparer.version["libraries"]);
}
return this;
}