internal string ForgeKeep(string FileText, ForgeY.Root ForgePath, string versionjson, string version)
        {
            ForgeJsonEarly.Root root = JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(FileText);
            JsonConvert.DeserializeObject <ForgeY.Root>(FileText);
            string str = null;

            if (root.minecraftArguments != null)
            {
                JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(versionjson);
                str = str + "{";
                this.SLC.wj(System.Directory.GetCurrentDirectory() + @"\.minecraft\versions\" + version + @"\" + version + ".json", versionjson);
                str = str + this.ForgeJsonY(JsonConvert.DeserializeObject <ForgeY.Root>(versionjson), ForgePath);
                char[]   separator = new char[] { ' ' };
                string[] strArray  = root.minecraftArguments.Split(separator);
                string   str2      = "";
                for (int j = 1; strArray.Length > j; j += 2)
                {
                    if ((((strArray[j - 1][0] == '-') && (strArray[j] != "com.mumfrey.liteloader.launch.LiteLoaderTweaker")) && (strArray[j] != "optifine.OptiFineForgeTweaker")) || (strArray[j][0] == '$'))
                    {
                        if (j != (strArray.Length - 1))
                        {
                            string[] textArray4 = new string[] { str2, strArray[j - 1], " ", strArray[j], " " };
                            str2 = string.Concat(textArray4);
                        }
                        else
                        {
                            str2 = str2 + strArray[j - 1] + " " + strArray[j];
                        }
                    }
                }
                if (str2[str2.Length - 1] == ' ')
                {
                    str2 = str2.Substring(0, str2.Length - 1);
                }
                return(str + ",\"minecraftArguments\": \"" + str2 + "\"}");
            }
            JObject obj2 = (JObject)JsonConvert.DeserializeObject(FileText);

            str = str + "{\"arguments\": {\"game\": [";
            for (int i = 1; (obj2["arguments"]["game"].ToArray <JToken>().Length - 1) > 0; i += 2)
            {
                try
                {
                    obj2["arguments"]["game"][i].ToString();
                    if ((((obj2["arguments"]["game"][i - 1].ToString()[0] == '-') && (obj2["arguments"]["game"][i].ToString() != "com.mumfrey.liteloader.launch.LiteLoaderTweaker")) && (obj2["arguments"]["game"][i].ToString() != "optifine.OptiFineForgeTweaker")) || (obj2["arguments"]["game"][i - 1].ToString()[0] == '$'))
                    {
                        string[] textArray1 = new string[] { str, "\"", obj2["arguments"]["game"][i - 1].ToString(), "\",\"", obj2["arguments"]["game"][i].ToString(), "\"," };
                        str = string.Concat(textArray1);
                    }
                }
                catch (Exception)
                {
                    break;
                }
            }
            str = str.Substring(0, str.Length - 1) + "]},";
            this.SLC.wj(System.Directory.GetCurrentDirectory() + @"\.minecraft\versions\" + version + @"\" + version + ".json", versionjson);
            return(str + this.ForgeJsonY(JsonConvert.DeserializeObject <ForgeY.Root>(versionjson), ForgePath) + "}");
        }
        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 ForgeJson(string version, string ForgePath)
        {
            string file = null;

            AllTheExistingVersion[] allTheExistingVersion = this.Tools.GetAllTheExistingVersion();
            foreach (AllTheExistingVersion version2 in allTheExistingVersion)
            {
                if (version2.version == version)
                {
                    string idVersion = version2.IdVersion;
                    break;
                }
                if (version2 == allTheExistingVersion[allTheExistingVersion.Length - 1])
                {
                    throw new SquareMinecraftLauncherException("未找到该版本");
                }
            }
            if (this.Tools.ForgeExist(version))
            {
                this.Tools.UninstallTheExpansionPack(ExpansionPack.Forge, version);
            }
            file = this.SLC.GetFile(System.Directory.GetCurrentDirectory() + @"\.minecraft\versions\" + version + @"\" + version + ".json");
            ForgeJsonEarly.Root root        = JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(file);
            ForgeY.Root         versionText = JsonConvert.DeserializeObject <ForgeY.Root>(file);
            string str2 = null;

            if (root.minecraftArguments != null)
            {
                ForgeJsonEarly.Root root3 = JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(this.SLC.GetFile(ForgePath));
                str2 = str2 + "{" + this.ForgeJsonY(versionText, JsonConvert.DeserializeObject <ForgeY.Root>(this.SLC.GetFile(ForgePath)));
                if (this.Tools.OptifineExist(version))
                {
                    root3.minecraftArguments = root3.minecraftArguments + " --tweakClass optifine.OptiFineForgeTweaker";
                }
                if (this.Tools.LiteloaderExist(version))
                {
                    root3.minecraftArguments = root3.minecraftArguments + " --tweakClass com.mumfrey.liteloader.launch.LiteLoaderTweaker";
                }
                return(str2 + ",\"minecraftArguments\": \"" + root3.minecraftArguments + "\"}");
            }
            JObject obj2 = (JObject)JsonConvert.DeserializeObject(file);
            JObject obj3 = (JObject)JsonConvert.DeserializeObject(this.SLC.GetFile(ForgePath));

            str2 = str2 + "{\"arguments\": {\"game\": [";
            for (int i = 0; (obj2["arguments"]["game"].ToArray <JToken>().Length - 1) > 0; i++)
            {
                try
                {
                    obj2["arguments"]["game"][i].ToString();
                    if ((obj2["arguments"]["game"][i].ToString()[0] == '-') || (obj2["arguments"]["game"][i].ToString()[0] == '$'))
                    {
                        str2 = str2 + "\"" + obj2["arguments"]["game"][i].ToString() + "\",";
                        continue;
                    }
                    if (obj2["arguments"]["game"][i - 1].ToString()[0] == '-')
                    {
                        str2 = str2 + "\"" + obj2["arguments"]["game"][i].ToString() + "\",";
                        continue;
                    }
                }
                catch (Exception)
                {
                }
                break;
            }
            if (this.Tools.OptifineExist(version))
            {
                str2 = str2 + "\"--tweakClass\",\"optifine.OptiFineForgeTweaker\",";
            }
            if (this.Tools.LiteloaderExist(version))
            {
                str2 = str2 + " \"--tweakClass\",\"com.mumfrey.liteloader.launch.LiteLoaderTweaker\",";
            }
            for (int j = 0; (obj3["arguments"]["game"].ToArray().Length - 1) > 0; j++)
            {
                try
                {
                    obj3["arguments"]["game"][j].ToString();
                    str2 = str2 + "\"" + obj3["arguments"]["game"][j].ToString() + "\",";
                }
                catch (Exception)
                {
                    str2 = str2.Substring(0, str2.Length - 1) + "]},";
                    break;
                }
            }
            return(str2 + this.ForgeJsonY(versionText, JsonConvert.DeserializeObject <ForgeY.Root>(this.SLC.GetFile(ForgePath))) + "}");
        }
예제 #4
0
        internal async Task <string> OptifineJson(string version, OptiFineList optiFineList)
        {
            if (this.tools.OptifineExist(version))
            {
                throw new SquareMinecraftLauncherException("已经安装过了,无需再次安装");
            }
            string file = this.SLC.GetFile(System.Directory.GetCurrentDirectory() + @"\.minecraft\versions\" + version + @"\" + version + ".json");

            ForgeJsonEarly.Root root        = JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(file);
            ForgeY.Root         versionText = JsonConvert.DeserializeObject <ForgeY.Root>(file);
            string str2 = null;

            if (root.minecraftArguments == null)
            {
                JObject obj2 = (JObject)JsonConvert.DeserializeObject(file);
                str2 = str2 + "{\"arguments\": {\"game\": [";
                for (int i = 0; (obj2["arguments"]["game"].ToArray <JToken>().Length - 1) > 0; i++)
                {
                    try
                    {
                        obj2["arguments"]["game"][i].ToString();
                        if ((obj2["arguments"]["game"][i].ToString()[0] == '-') || (obj2["arguments"]["game"][i].ToString()[0] == '$'))
                        {
                            str2 = str2 + "\"" + obj2["arguments"]["game"][i].ToString() + "\",";
                            continue;
                        }
                        if (obj2["arguments"]["game"][i - 1].ToString()[0] == '-')
                        {
                            str2 = str2 + "\"" + obj2["arguments"]["game"][i].ToString() + "\",";
                            continue;
                        }
                    }
                    catch (Exception)
                    {
                    }
                    break;
                }
                try
                {
                    await tools.GetCompareForgeVersions(version);

                    str2 = str2 + "\"--tweakClass\",";
                    str2 = str2 + "\"optifine.OptiFineForgeTweaker\"]},";
                }
                catch (SquareMinecraftLauncherException)
                {
                    str2 = str2 + "\"--tweakClass\"," + "\"optifine.OptiFineTweaker\"]},";
                }
                return(str2 + this.liteloaderJsonY(versionText, optiFineList.type, optiFineList.patch, version, optiFineList.filename) + "}");
            }
            str2 = str2 + "{" + this.liteloaderJsonY(versionText, optiFineList.type, optiFineList.patch, version, optiFineList.filename);
            ForgeJsonEarly.Root root3 = JsonConvert.DeserializeObject <ForgeJsonEarly.Root>(file);
            try
            {
                await tools.GetCompareForgeVersions(version);

                return(str2 + ",\"minecraftArguments\": \"" + root3.minecraftArguments + " --tweakClass optifine.OptiFineForgeTweaker\"}");
            }
            catch (SquareMinecraftLauncherException)
            {
                return(str2 + ",\"minecraftArguments\": \"" + root3.minecraftArguments + " --tweakClass optifine.OptiFineTweaker\"}");
            }
        }