/// <summary> /// Raft библиотеки /// </summary> /// <param name="cfg"></param> private JsonRift addRaftLibs(string version) { string jsonFileRift = ConfigApp.currentDir + DIR_GAME_VERSIONS + @"\" + version + @"\" + version + "-rift.json"; if (File.Exists(jsonFileRift)) { JsonRift jsonRift = JsonParseRift(jsonFileRift); mainClass = jsonRift.mainClass; if (jsonRift.arguments != null) { string par = String.Join(" ", jsonRift.arguments.game); modParams += " " + par; } foreach (JsonRift.Libraries lib in jsonRift.libraries) { string name = lib.name.Replace('.', '\\'); } return(jsonRift); } 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); }