Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
        }