2.13.0.1
This commit is contained in:
+1
-1
Submodule MeloongCore updated: d3b9ccde9c...e5c8e65e2b
+12
-7
@@ -3,7 +3,7 @@ namespace PCLCS;
|
||||
/// <summary>
|
||||
/// 单个 Java 的实例。
|
||||
/// </summary>
|
||||
[Serializable] public class Java(string folder, Version? version = null) {
|
||||
[Serializable] public class Java(string folder, Version? version = null) : IEquatable<Java> {
|
||||
|
||||
/// <summary>
|
||||
/// java.exe 文件所在的文件夹路径,这通常是 bin 文件夹。以 \ 结尾。
|
||||
@@ -63,6 +63,12 @@ namespace PCLCS;
|
||||
/// <summary>若已进行过检查,表示该检查是否成功。若未检查,则为 null。</summary>
|
||||
[JsonIgnore] internal bool? available = null;
|
||||
|
||||
// 相同检查
|
||||
public bool Equals(Java? other)
|
||||
=> other is not null && string.Equals(Folder, other.Folder, StringComparison.OrdinalIgnoreCase);
|
||||
public override bool Equals(object? obj) => obj is Java other && Equals(other);
|
||||
public override int GetHashCode() => StringComparer.OrdinalIgnoreCase.GetHashCode(Folder);
|
||||
|
||||
/// <summary>用户友好的描述文本。</summary>
|
||||
public override string ToString()
|
||||
=> $"Java {Version?.Major.ToString() ?? "尚未检查"} ({Version}):{Folder}";
|
||||
@@ -92,9 +98,9 @@ public static class JavaUtils {
|
||||
var isLeftInCandidateFolder = JavaUtils.CandidateFolders.Any(folder => PathUtils.IsParentOf(folder, left.Folder));
|
||||
var isRightInCandidateFolder = JavaUtils.CandidateFolders.Any(folder => PathUtils.IsParentOf(folder, right.Folder));
|
||||
if (isLeftInCandidateFolder != isRightInCandidateFolder) return isLeftInCandidateFolder ? -1 : 1;
|
||||
// 其次优先使用主版本号接近 25 的 Java
|
||||
var leftDistance = left.Version is null ? int.MaxValue : Math.Abs(left.Version.Major - 25);
|
||||
var rightDistance = right.Version is null ? int.MaxValue : Math.Abs(right.Version.Major - 25);
|
||||
// 其次优先使用主版本号接近 21 的 Java
|
||||
var leftDistance = left.Version is null ? int.MaxValue : Math.Abs(left.Version.Major - 21);
|
||||
var rightDistance = right.Version is null ? int.MaxValue : Math.Abs(right.Version.Major - 21);
|
||||
return leftDistance.CompareTo(rightDistance);
|
||||
});
|
||||
return javas;
|
||||
@@ -138,11 +144,10 @@ public static class JavaUtils {
|
||||
// 将新发现的 Java 排在最前,原有列表保留既有顺序排在后面
|
||||
var oldJavaList = Configs.JavaList.Get()!;
|
||||
oldJavaList = await JavaUtils.CheckAllAsync(oldJavaList, c, p?.SplitTo(0.9)).NoCapture(); // 检查原有列表中的 Java
|
||||
HashSet<string> oldJavaFolders = new(oldJavaList.Select(j => j.Folder), StringComparer.OrdinalIgnoreCase);
|
||||
javaList.RemoveIf(j => oldJavaFolders.Contains(j.Folder)); // 此时 javaList 中只剩下新发现的 Java
|
||||
javaList.RemoveAll(oldJavaList); // 此时 javaList 中只剩下新发现的 Java
|
||||
javaList = await JavaUtils.SortAsync(javaList, c).NoCapture(); // 将所有新发现的 Java 按优先级排序
|
||||
javaList.AddRange(oldJavaList);
|
||||
javaList = javaList.DistinctBy(j => j.Folder.Lower()).ToList();
|
||||
javaList = javaList.Distinct().ToList();
|
||||
// 删掉已被移除的 Java
|
||||
javaList.RemoveIf(j => Configs.JavaRemovedList.Get()!.Contains(j.Folder, StringComparer.OrdinalIgnoreCase));
|
||||
// 写入设置
|
||||
|
||||
@@ -11,7 +11,8 @@ Public Class MyScrollViewer
|
||||
(GetType(ComboBox).IsAssignableFrom(SourceType) AndAlso CType(e.Source, ComboBox).IsDropDownOpen) OrElse
|
||||
(GetType(TextBox).IsAssignableFrom(SourceType) AndAlso CType(e.Source, TextBox).AcceptsReturn) OrElse
|
||||
GetType(ComboBoxItem).IsAssignableFrom(SourceType) OrElse
|
||||
PresentationSource.FromVisual(e.Source)?.RootVisual?.GetType().FullName = "System.Windows.Controls.Primitives.PopupRoot") Then
|
||||
(TypeOf e.Source Is Visual AndAlso
|
||||
PresentationSource.FromVisual(e.Source)?.RootVisual?.GetType().FullName = "System.Windows.Controls.Primitives.PopupRoot")) Then
|
||||
'如果当前是在对有滚动条的下拉框或文本框执行,则不接管操作
|
||||
Return
|
||||
End If
|
||||
|
||||
@@ -11,7 +11,7 @@ Public Class FormMain
|
||||
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
|
||||
'统计更新日志条目
|
||||
If BuildType = BuildTypes.Release Then
|
||||
If LastVersion < 406 Then 'Release 2.13.0.0
|
||||
If LastVersion < 406 Then 'Release 2.13.0.1
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "新增:重做 Java 管理与相关设置,允许调整 Java 优先级、指定 Java 版本范围等"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:导出整合包时允许自动导出版本文件夹中的 Java"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:重做弹出提示的样式以及动画,以更符合现代 UI 审美"))
|
||||
@@ -87,6 +87,16 @@ Public Class FormMain
|
||||
'3:BUG+ IMP* FEAT-
|
||||
'2:BUG* IMP-
|
||||
'1:BUG-
|
||||
If LastVersion < 407 Then 'Snapshot 2.13.0.1
|
||||
If LastVersion = 405 Then
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:使用部分主页预设时崩溃"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:无法删除部分文件夹"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:版本设置中指定的 Java 无法被保存"))
|
||||
FeatureCount += 1
|
||||
BugCount += 3
|
||||
End If
|
||||
FeatureCount += 2
|
||||
End If
|
||||
If LastVersion < 405 Then 'Snapshot 2.13.0.0
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(4, "新增:重做 Java 管理与相关设置,允许调整 Java 优先级、指定 Java 版本范围等"))
|
||||
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:导出整合包时允许自动导出版本文件夹中的 Java"))
|
||||
|
||||
@@ -6,12 +6,12 @@ Public Module ModBase
|
||||
#Region "声明"
|
||||
|
||||
'下列版本信息由更新器自动修改
|
||||
Public Const VersionBaseName As String = "2.13.0.0" '显示用版本名
|
||||
Public Const VersionBaseName As String = "2.13.0.1" '显示用版本名
|
||||
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
|
||||
#If RELEASE Then
|
||||
Public Const VersionCode As Integer = 406 '正式版
|
||||
#Else
|
||||
Public Const VersionCode As Integer = 405 '快照版
|
||||
Public Const VersionCode As Integer = 407 '快照版
|
||||
#End If
|
||||
|
||||
'版本信息
|
||||
|
||||
@@ -948,13 +948,13 @@ NextStack:
|
||||
Case CrashReason.内存不足
|
||||
Results.Add("Minecraft 内存不足,导致其无法继续运行。\n这很可能是因为电脑内存不足、游戏分配的内存不足,或是配置要求过高。\n\n你可以尝试在 更多 → 百宝箱 中选择 内存优化,然后再启动游戏。\n如果还是不行,请在启动设置中增加为游戏分配的内存,并删除配置要求较高的材质、Mod、光影。\n如果依然不奏效,请在开始游戏前尽量关闭其他软件,或者……换台电脑?\h")
|
||||
Case CrashReason.使用OpenJ9
|
||||
Results.Add("游戏因为使用 OpenJ9 而崩溃了。\n请在启动设置的 Java 选择一项中改用非 OpenJ9 的 Java,然后再启动游戏。")
|
||||
Results.Add("游戏因为使用 OpenJ9 而崩溃了。\n请在版本设置的 Java 选项中改用非 OpenJ9 的 Java,然后再启动游戏。")
|
||||
Case CrashReason.使用JDK
|
||||
Results.Add("游戏似乎因为使用 JDK,或 Java 版本过高而崩溃了。\n请在启动设置的 Java 选择一项中改用 JRE 8(Java 8),然后再启动游戏。\n如果你没有安装 JRE 8,你可以从网络中下载、安装一个。")
|
||||
Results.Add("游戏似乎因为使用 JDK,或 Java 版本过高而崩溃了。\n请在版本设置的 Java 选项中改用 Java 8,然后再启动游戏。\n如果你没有安装 Java 8,可以从网络中下载、安装一个。")
|
||||
Case CrashReason.Java版本过高
|
||||
Results.Add("游戏似乎因为你所使用的 Java 版本过高而崩溃了。\n请在启动设置的 Java 选择一项中改用较低版本的 Java,然后再启动游戏。\n如果没有,可以从网络中下载、安装一个。")
|
||||
Results.Add("游戏似乎因为你所使用的 Java 版本过高而崩溃了。\n请在版本设置的 Java 选项中改用较低版本的 Java,然后再启动游戏。\n如果没有,可以从网络中下载、安装一个。")
|
||||
Case CrashReason.Java版本不兼容
|
||||
Results.Add("游戏不兼容你当前使用的 Java。\n如果没有合适的 Java,可以从网络中下载、安装一个。")
|
||||
Results.Add("游戏不兼容你当前使用的 Java。\n请在版本设置的 Java 选项中改用合适版本的 Java,然后再启动游戏。\n如果你没有安装任何 Mod 并且因此崩溃,请向 PCL 提交反馈。")
|
||||
Case CrashReason.Mod名称包含特殊字符
|
||||
Results.Add("由于有 Mod 的名称包含特殊字符,导致游戏崩溃。\n请尝试修改 Mod 文件名,让它只包含英文字母、数字、减号(-)、下划线(_)和小数点,然后再启动游戏。")
|
||||
Case CrashReason.MixinBootstrap缺失
|
||||
|
||||
@@ -82,7 +82,7 @@ Public Module ModJava
|
||||
'加入列表顶部
|
||||
Configs.JavaList.Edit(
|
||||
Sub(ByRef List)
|
||||
List.RemoveIf(Function(j) j.Folder.Equals(NewJava.Folder, StringComparison.OrdinalIgnoreCase))
|
||||
List.Remove(NewJava)
|
||||
List.Insert(0, NewJava)
|
||||
End Sub)
|
||||
Hint($"已将 Java 加入列表:{NewJavaPath}", HintType.Green)
|
||||
@@ -458,13 +458,11 @@ Public Module ModJava
|
||||
p?.Set(0.4) : GoTo NoForcedJava
|
||||
End If
|
||||
Logger.Info($"将版本独立设置改为老版本中强制指定的 Java:{ForcedJava}")
|
||||
Dim Match = Configs.JavaList.Get().FirstOrDefault(Function(j) j.Folder.Equals(ForcedJava.Folder, StringComparison.OrdinalIgnoreCase))
|
||||
If Match Is Nothing Then
|
||||
If Not Configs.JavaList.Get().Contains(ForcedJava) Then
|
||||
Configs.JavaList.Edit(Sub(ByRef List) List.Add(ForcedJava)) '加入列表底部
|
||||
Match = ForcedJava
|
||||
Logger.Info($"已将强制指定的 Java 加入 Java 列表底部:{ForcedJava}")
|
||||
End If
|
||||
Configs.InstanceForcedJava.Set(Match, Instance.Config)
|
||||
Configs.InstanceForcedJava.Set(ForcedJava, Instance.Config)
|
||||
Settings.Set("VersionArgumentJavaV2", 3, Instance)
|
||||
UpdateJavaLists()
|
||||
Configs.InstanceMigratedJava.Set(True, Instance.Config) '完成
|
||||
|
||||
@@ -51,6 +51,6 @@ Imports System.Runtime.InteropServices
|
||||
' 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
' 方法是按如下所示使用“*”
|
||||
|
||||
<Assembly: AssemblyVersion("2.13.0.0")>
|
||||
<Assembly: AssemblyFileVersion("2.13.0.0")>
|
||||
<Assembly: AssemblyVersion("2.13.0.1")>
|
||||
<Assembly: AssemblyFileVersion("2.13.0.1")>
|
||||
<Assembly: NeutralResourcesLanguage("")>
|
||||
|
||||
@@ -107,7 +107,7 @@ Public Class PageLaunchRight
|
||||
Url = "https://qawsedrftgyhujiko.fun/pcl2/Custom.xaml"
|
||||
Case 17
|
||||
Logger.Info("Bangumi 番剧主页")
|
||||
Url = "https://pbp.kaphia.qzz.io"
|
||||
Url = "https://bangumi.p.kaphia.qzz.io"
|
||||
End Select
|
||||
End Select
|
||||
'联网下载
|
||||
|
||||
@@ -278,6 +278,7 @@
|
||||
<TextBlock Margin="0,1.5,6,0" Text="李察维" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="十六夜" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="皮小风" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="陈知远" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="TaLula" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="N线🧵" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="秋辞白." />
|
||||
@@ -351,6 +352,7 @@
|
||||
<TextBlock Margin="0,1.5,6,0" Text="星尘墨韵" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="聆听冰风" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="鸭梨山大" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="一条鱼瓯" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="Kang_XL" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="Crispykit" />
|
||||
<TextBlock Margin="0,1.5,6,0" Text="vorinshe" />
|
||||
|
||||
Reference in New Issue
Block a user