/// <summary> /// Forge библиотеки /// </summary> /// <param name="cfg"></param> private JsonForge loadLibrariesForge(string version) { string jsonFileVersionForge = ConfigApp.currentDir + DIR_GAME_VERSIONS + @"\" + version + @"\" + version + "-forge.json"; if (File.Exists(jsonFileVersionForge)) { JsonForge json = jsonParseForge(jsonFileVersionForge); //mainClass = json.mainClass; if (json.arguments != null) { modParams = String.Join(" ", json.arguments.game); } foreach (JsonForge.Libraries lib in json.libraries) { if (json.inheritsFrom == "1.12.2" || json.inheritsFrom == "1.11.2") { //string name = lib.name.Replace(":", @"\"); string[] dirs = lib.name.Split(':'); string name = dirs[0].Replace('.', '\\'); for (int j = 1; j < dirs.Length; j++) { name += "\\" + dirs[j]; } string dir = ConfigApp.currentDir + @"\libraries\" + name + "\\"; if (Directory.Exists(dir)) { string[] files = Directory.GetFiles(dir); for (int i = 0; i < files.Length; i++) { libraries.Add(files[i]); } } } else { string filepath = ConfigApp.currentDir + @"\libraries\" + lib.downloads.artifact.path.Replace('/', '\\'); libraries.Add(filepath); } } return(json); } return(null); }
public bool run(ConfigClient cfg, string java) { string pathNatives = ConfigApp.currentDir + @"\natives\" + cfg.VersionGame; if (!existNatives(pathNatives)) { System.Windows.MessageBox.Show("Библиотеки natives не найдены"); return(false); } libraries = new List <String>(); JsonForge jsonForge = null; JsonMinecraft jsonNative = null; JsonRift jsonRift = null; // Загрузка Rift библиотек if (cfg.IsRift) { jsonRift = addRaftLibs(cfg.VersionGame); } // Загрузка Forge библиотек if (cfg.IsForge) { jsonForge = loadLibrariesForge(cfg.VersionGame); } //Загрузка Native библиотек jsonNative = loadNativeLibraries(cfg.VersionGame); if (jsonNative == null) { System.Windows.MessageBox.Show("Библиотеки не загружены"); return(false); } // Установка класса запуска if (cfg.IsForge) { mainClass = jsonForge.mainClass; } else { mainClass = jsonNative.mainClass; } // Переустановка модов if (cfg.IsinstallMods) { ModForge.install(cfg.VersionGame); } // Строка запуска string param = generateParamString(cfg.Memory, pathNatives, jsonNative, cfg.Username, cfg.HostServer, cfg.PortGameServer); if (cfg.IsForge) { if (cfg.VersionGame == "1.12.2" || cfg.VersionGame == "1.11.2") { param += @" --tweakClass net.minecraftforge.fml.common.launcher.FMLTweaker"; // --tweakClass cpw.mods.fml.common.launcher.FMLTweaker } param += " " + modParams; } try { Process start = new Process(); start.StartInfo.CreateNoWindow = true; start.StartInfo.UseShellExecute = false; start.StartInfo.Arguments = param; start.StartInfo.FileName = java + @"\javaw.exe"; start.Start(); return(true); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message + " " + ex.StackTrace); } return(false); }