internal async Task <string> LiteloaderJson(string version) { if (this.tools.LiteloaderExist(version)) { throw new SquareMinecraftLauncherException("已经安装过了,无需再次安装"); } string idVersion = null; foreach (AllTheExistingVersion version2 in this.tools.GetAllTheExistingVersion()) { if (version2.version == version) { idVersion = version2.IdVersion; } } LiteloaderList[] liteloaderList = await tools.GetLiteloaderList(); LiteloaderList libraries = new LiteloaderList(); foreach (LiteloaderList list2 in liteloaderList) { if (list2.mcversion == idVersion) { libraries = list2; break; } if (list2.mcversion == liteloaderList[liteloaderList.Length - 1].mcversion) { throw new SquareMinecraftLauncherException("该版本不支持安装"); } } string file = this.SLC.GetFile(System.Directory.GetCurrentDirectory() + @"\.minecraft\versions\" + version + @"\" + version + ".json"); ForgeY.Root versionText = JsonConvert.DeserializeObject <ForgeY.Root>(file); string str2 = null; str2 = str2 + "{" + this.liteloaderJsonY(versionText, libraries, version); ForgeJsonEarly.Root root2 = JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(file); string[] textArray2 = new string[] { str2, ",\"minecraftArguments\": \"", root2.minecraftArguments, " --tweakClass ", libraries.tweakClass, "\"}" }; return(string.Concat(textArray2)); }
public string liteloaderJsonY(ForgeY.Root versionText, LiteloaderList libraries, string version) { string[] textArray1 = new string[] { "\"assetIndex\": {\"id\": \"", versionText.assetIndex.id, "\",\"size\":", versionText.assetIndex.size, ",\"url\": \"", versionText.assetIndex.url, "\"},\"assets\": \"", versionText.assets, "\",\"downloads\": {\"client\": {\"url\":\"", versionText.downloads.client.url, "\"}},\"id\": \"", versionText.id, "\",\"libraries\": [" }; string str = string.Concat(textArray1); foreach (Lib lib in libraries.lib) { ForgeY.LibrariesItem item2 = new ForgeY.LibrariesItem { name = lib.name }; ForgeY.Downloads downloads2 = new ForgeY.Downloads { artifact = new ForgeY.Artifact() }; downloads2.artifact.url = " "; item2.downloads = downloads2; versionText.libraries.Add(item2); } ForgeY.LibrariesItem item = new ForgeY.LibrariesItem { name = "com.mumfrey:liteloader:" + libraries.version }; ForgeY.Downloads downloads = new ForgeY.Downloads { artifact = new ForgeY.Artifact() }; downloads.artifact.url = this.Minecraft.DownloadLiteloader(libraries.version).Url; item.downloads = downloads; versionText.libraries.Add(item); for (int i = 0; versionText.libraries.ToArray().Length > i; i++) { str = str + "{\"name\":\"" + versionText.libraries[i].name + "\","; if ((versionText.libraries[i].downloads == null) || (versionText.libraries[i].downloads.artifact == null)) { str = str.Substring(0, str.Length - 1); } else { str = str + "\"downloads\":{\"artifact\":{\"url\":\"" + versionText.libraries[i].downloads.artifact.url + "\"}}"; } if (versionText.libraries[i].natives != null) { str = str + ",\"natives\": {"; string str2 = null; if (versionText.libraries[i].natives.linux != null) { if (str2 != null) { str2 = str2 + ","; } str2 = str2 + "\"linux\": \"natives - linux\""; } if (versionText.libraries[i].natives.osx != null) { if (str2 != null) { str2 = str2 + ","; } str2 = str2 + "\"osx\": \"natives - osx\""; } if (versionText.libraries[i].natives.windows != null) { if (str2 != null) { str2 = str2 + ","; } str2 = str2 + "\"windows\": \"" + versionText.libraries[i].natives.windows + "\""; } str = str + str2 + "}},"; } else { str = str + "},"; } if (i == (versionText.libraries.ToArray().Length - 1)) { char[] chArray1 = str.ToCharArray(); chArray1[chArray1.Length - 1] = ']'; str = null; foreach (char ch in chArray1) { str = str + ch.ToString(); } } } return(str + ",\"mainClass\": \"" + versionText.mainClass + "\""); }