diff --git a/Controls/SodaCheckBox.xaml b/Controls/SodaCheckBox.xaml index 2689473..5888132 100644 --- a/Controls/SodaCheckBox.xaml +++ b/Controls/SodaCheckBox.xaml @@ -8,8 +8,8 @@ d:DesignHeight="40" d:DesignWidth="125" Loaded="Border_Loaded" VerticalAlignment="Center" HorizontalAlignment="Center"> + Background="{DynamicResource Brush_Main}" BorderBrush="{DynamicResource Brush_Main}" BorderThickness="4" + MouseLeftButtonUp="Btn_Border_MouseLeftButtonUp" MouseEnter="Btn_MouseEnter" MouseLeave="Btn_Border_MouseLeave" MouseDown="Btn_Border_MouseDown" MouseUp="Btn_Border_MouseUp" HorizontalAlignment="Center" VerticalAlignment="Center"> diff --git a/Core/Game/MinecraftLaunch.cs b/Core/Game/MinecraftLaunch.cs index 653be32..ece0073 100644 --- a/Core/Game/MinecraftLaunch.cs +++ b/Core/Game/MinecraftLaunch.cs @@ -26,19 +26,26 @@ public class MinecraftLaunch { private static string _userType; private static string _versionType; + private static string coreName = "1.21.4"; + private static string coreVersion = "1.21.4"; + private static string username = "SodaCLTest"; + private static int memoryMax = 4096; + private static int memoryMin = 2048; + private MinecraftLaunch() { } public static void LaunchGame() { // _coreInfo = JsonConvert.DeserializeObject(RegEditor.GetKeyValue(Registry.CurrentUser, "CurrentGameInfo")); // _assetInfo = JsonConvert.DeserializeObject(_coreInfo.GameDir + "\\" + _coreInfo.VersionName); - var json = File.ReadAllText($"{SODA_MC_DIR}\\versions\\1.21.4\\1.21.4.json"); + var json = File.ReadAllText($"{SODA_MC_VERSIONS_DIR}\\{coreName}\\{coreName}.json"); _assetInfo = JsonConvert.DeserializeObject(json); var StartArgs = SpliceArgumentsMain(); Log(false, ModuleList.IO, LogInfo.Info, StartArgs); var javaPath = ""; // javaPath = JavaAutoSelector("1.21.4"); + // Java 自动选择 javaPath = "C:\\Program Files\\Zulu\\zulu-21\\bin\\java.exe"; var p = new Process(); @@ -88,9 +95,9 @@ public static string SpliceBasicArguments() { //TODO: Natives 文件处理 (-Djava.library.path="E:\Minecraft\.minecraft\$natives") var BasicArguments = ""; - BasicArguments += $" -Xmx2048M"; - BasicArguments += $" -Xms2048M"; - BasicArguments += $" -Xmn256M"; + BasicArguments += $" -Xmx{memoryMax}M"; + BasicArguments += $" -Xms{memoryMin}M"; + BasicArguments += $" -Xmn256M"; // 之后可能需要斟酌一下数值,似乎会影响性能 BasicArguments += " -XX:+UseG1GC"; BasicArguments += " -XX:-UseAdaptiveSizePolicy"; BasicArguments += " -XX:-OmitStackTraceInFastThrow"; @@ -117,7 +124,7 @@ public static string SpliceLibrariesArguments() { } LibrariesArguments += libPath + ";"; } - LibrariesArguments += "E:\\Code\\SodaCL\\bin\\Debug\\net8.0-windows\\.minecraft\\versions\\1.21.4\\1.21.4.jar"; + LibrariesArguments += $"{SODA_MC_VERSIONS_DIR}\\{coreName}\\{coreName}.jar"; return LibrariesArguments; } @@ -130,9 +137,9 @@ public static string SpliceMcArguments(int accountType) { //McArguments += $" --username {RegEditor.GetKeyValue(Registry.CurrentUser, "UserName")}"; // McArguments.Add($"--version {_coreInfo.VersionName}"); //McArguments.Add($"--gameDir {DirConverter(_coreInfo.GameDir)}"); - McArguments += $" --username SodaCLTest"; - McArguments += $" --version 1.21.4"; - McArguments += $" --gameDir {SODA_MC_DIR}\\versions\\1.21.4"; + McArguments += $" --username {username}"; + McArguments += $" --version {coreVersion}"; + McArguments += $" --gameDir {SODA_MC_VERSIONS_DIR}\\{coreName}"; McArguments += $" --assetsDir {SODA_MC_DIR}\\assets"; McArguments += $" --assetIndex {_assetInfo.AssetIndex.Id}"; //McArguments += $" --uuid {_uuid}"; diff --git a/Core/Java/ModJava.cs b/Core/Java/ModJava.cs index 18a8821..dd550b0 100644 --- a/Core/Java/ModJava.cs +++ b/Core/Java/ModJava.cs @@ -194,8 +194,27 @@ public static string JavaAutoSelector(string TargetMcVersion) { var javaList = JsonConvert.DeserializeObject(javaJson); var mcMajorVersion = int.Parse(TargetMcVersion.Split('.')[1]); - - if (mcMajorVersion >= 17) { + int mcMinorVersion; + if (TargetMcVersion.Split('.').Length > 2) + mcMinorVersion = int.Parse(TargetMcVersion.Split('.')[2]); + else + mcMinorVersion = 0; + + if ((mcMajorVersion == 20 && mcMinorVersion >= 4) || mcMajorVersion >= 21) { + // 1.20.4+ 至少 Java 21,快照版本暂时未确定 + foreach (var javaJsonSingle in javaList.ToString()) + { + var java = JsonConvert.DeserializeObject(javaJsonSingle.ToString()); + if (java.MajorVersion == "21") + { + RegEditor.SetKeyValue(Registry.CurrentUser, "CacheTargetJavaPath", java.JavaPath, RegistryValueKind.String); + return java.JavaPath; + } + break; + } + return null; + } + else if (mcMajorVersion >= 17) { // 1.18 Pre2+ 至少 Java 17 // 1.17+ (21w19a+) 至少 Java 16 // 出于省事考虑直接最少 Java 17 ,除了 1.17 部分早期版本的 Forge 可能需要特殊处理 (Java 16) @@ -208,6 +227,7 @@ public static string JavaAutoSelector(string TargetMcVersion) { } break; } + return null; } else if (mcMajorVersion >= 12) { // 最少 Java 8 @@ -221,6 +241,7 @@ public static string JavaAutoSelector(string TargetMcVersion) { } break; } + return null; } else if (mcMajorVersion <= 11 && mcMajorVersion >= 8) { // 必须恰好 Java 8 @@ -233,6 +254,7 @@ public static string JavaAutoSelector(string TargetMcVersion) { } break; } + return null; } else if (mcMajorVersion <= 7) { // 最高 Java 8 @@ -246,6 +268,7 @@ public static string JavaAutoSelector(string TargetMcVersion) { } break; } + return null; } else if (mcMajorVersion <= 5) { // 最高 Java 12 @@ -259,6 +282,7 @@ public static string JavaAutoSelector(string TargetMcVersion) { } break; } + return null; } else { return "核心版本非法"; diff --git a/MainPage.xaml b/MainPage.xaml index f9b9584..d2ca052 100644 --- a/MainPage.xaml +++ b/MainPage.xaml @@ -32,7 +32,7 @@ - + diff --git a/Pages/Settings/Set_About.xaml b/Pages/Settings/Set_About.xaml index a14c030..06b7304 100644 --- a/Pages/Settings/Set_About.xaml +++ b/Pages/Settings/Set_About.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:soda="clr-namespace:SodaCL.Controls" xmlns:local="clr-namespace:SodaCL.Pages.Settings" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" Title="Set_About"> @@ -13,6 +14,9 @@ + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum dignissimos alias distinctio vero est ex exercitationem error pariatur quo! Delectus ipsum nam incidunt iure atque est eos aperiam rem doloribus.