Skip to content

Commit 9c97f1f

Browse files
authored
Merge branch 'main' into main
2 parents 8375380 + bf6fa71 commit 9c97f1f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1352
-1090
lines changed

LICENCE

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,40 @@
1-
本文件仅作为指引您合理使用本存储库内容的指南,不是法律文件或协议。
1+
一、声明
22

3-
一、承诺与声明。
3+
本文件仅作为指南,不是法律文件或协议。但开发者在此承诺,在您遵守本指南且善意、合理使用的情况下,不会追究您的责任。
4+
法律上,开发者仍保留所有权利(All Rights Reserved),若情况恶劣,仍可能将诉讼作为最终手段。
45

5-
  开发者承诺,在您遵守本指南且善意使用的情况下,不会追究您的责任,但最终裁量权仍由开发者保留。
6-
  法律上,开发者仍保留所有权利(All Rights Reserved),且可能随时修改本指南,本指南并不是永久性保证。
76

8-
二、少量使用情形。
97

10-
  如果您仅合理使用本存储库中的少量内容,或是参考实现思路,您必须:
11-
  1、给出适当的署名,且提供指向本存储库的链接。GitHub 上的 Fork 可视为满足此条。
12-
  2、不得以任何方式暗示开发者为您或您的使用作担保。
8+
二、轻度使用
139

14-
三、大量使用情形。
10+
若您仅参考了本存储库中极小部分的内容,或您在制作与 PCL 的实质功能不存在任何重叠的软件,则为轻度使用。
11+
其常见情形例如:
12+
· 使用或参考存储库中极小部分的内容,来开发启动器或其他软件。
13+
· 虽参考了较大量的内容,但制作的软件与 PCL 的实质功能不存在任何重叠。
1514

16-
  如果您基于该存储库创作衍生作品,或合理使用了本存储库中的较大量内容,您必须:
17-
  1、给出适当的署名,且提供指向本存储库的链接。GitHub 上的 Fork 可视为满足此条。
18-
  2、不得以任何方式暗示开发者为您或您的使用作担保。
19-
  3、给出适当的说明,以明确表示该衍生作品是非官方内容。
20-
  4、使用本指南文件作为协议,不得附加额外条款。
21-
  5、该衍生作品的名称必须以 “PCL” 或 “Plain Craft Launcher” 开头,并在其后添加后缀。例如 “PCL 整合包优化版”、“PCL PR Collection”。
22-
  6、该衍生作品不得包含 PCL 的赞助解锁功能,或与其相近的功能或内容。例如将配色修改为蓝色色系以外的颜色。
23-
  7、以善意目的进行合理使用,不要用 PCL 来干坏事、恰烂钱、整烂活。开发者可能会将撤销所有授权作为最终手段。
15+
若属于轻度使用,您需要:
16+
1、以适当的形式给出署名。
17+
2、不得将您的内容与 PCL 混淆,或暗示您的内容与 PCL 有关。
18+
 例如:您的内容不得使用 Planting Craft Launcher、PCL 手机版 等会造成混淆或暗示这与 PCL 有关的名称。
19+
20+
21+
22+
三、重度使用
23+
24+
若不符合轻度使用的情形,即为重度使用。
25+
其常见情形例如:
26+
· 基于本存储库进行修改。
27+
· 参考存储库中较大量的内容,以制作或重新实现 PCL 的部分实质功能(例如启动或下载 Java 版 Minecraft,下载或管理 Mod 等)。
28+
29+
若属于重度使用,您需要:
30+
1、明确表示您的内容是第三方基于 PCL 独立进行二次创作的产物。
31+
2、您的内容的名称必须以 Plain Craft Launcher (PCL) 开头,并在其后添加足以表现其由第三方修改的后缀。
32+
 允许的示例:PCL 某服务器魔改版、PCL PR Collection、PCL (XX Bug Fix)、PCL XXX修改版。
33+
 禁止的示例:PCL 某服务器特供版(暗示由官方提供)、PCL 3、PCL 手机版、PCL++、PCL Pro(这像是官方的后续作品)。
34+
3、在关于页面的首位给出龙腾猫跃的署名及对应的赞助链接,公开源代码,且继续使用本文件作为指南(可参考 CC BY-SC 协议)。
35+
4、软件若有 Minecraft 启动功能,则应实现与 McLaunchPrecheck 函数一致的 Minecraft 正版购买弹窗与赞助弹窗。
36+
5、软件在 Windows 系统上运行时,不应有与 PCL 的赞助解锁功能类似的功能或表现。
37+
 例如:界面的主要色相必须为蓝色(即使没有修改功能,改为其他色相也和需要赞助解锁的主题功能类似)。
2438

2539
————————————
2640

@@ -29,5 +43,7 @@
2943
因为没有法律专业人士检查,所以这不敢作为正式的法律协议,如果有专业人士愿意帮忙改一改我也很乐意……
3044
这些规则主要是为了阻止恶意的使用和 “山寨版” 的出现,常规、善意的使用都没啥问题的,放心吧!
3145

32-
如果你只是想参考一下,或者用了一小部分代码,署个名就行啦。
33-
如果你整了个魔改版,或者用了一大堆代码,请仔细参考上面的第三条。
46+
如果你只是参考了一小段代码,署个名就行啦,不用担心。
47+
如果对具体细节有疑问,欢迎在 https://github.com/Hex-Dragon/PCL2/discussions/new?category=%E6%8F%90%E9%97%AE 发帖询问!
48+
49+
多谢大家啦!

Plain Craft Launcher 2/Application.xaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@
209209
</Setter.Value>
210210
</Setter>
211211
</Style>
212-
<Style TargetType="local:MyScrollViewer">
212+
<Style TargetType="local:MyScrollViewer" x:Name="StyleMyScrollViewer">
213213
<Setter Property="OverridesDefaultStyle" Value="True" />
214214
<Setter Property="CanContentScroll" Value="False" />
215215
<Setter Property="PanningMode" Value="VerticalOnly" />
@@ -225,6 +225,7 @@
225225
</Setter.Value>
226226
</Setter>
227227
</Style>
228+
<Style TargetType="local:PageComp" BasedOn="{StaticResource {x:Type local:MyScrollViewer}}" />
228229
<Style TargetType="ScrollViewer" x:Key="ScrollViewerFullMargin">
229230
<Setter Property="OverridesDefaultStyle" Value="True" />
230231
<Setter Property="CanContentScroll" Value="False" />

Plain Craft Launcher 2/Application.xaml.vb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,11 @@ WaitRetry:
115115
LogStart()
116116
'添加日志
117117
Log($"[Start] 程序版本:{VersionDisplayName} ({VersionCode}{If(CommitHash = "", "", $"#{CommitHash}")})")
118+
#If RELEASE Then
119+
Log($"[Start] 识别码:{UniqueAddress}{If(ThemeCheckOne(9), "正式版", "")}")
120+
#Else
118121
Log($"[Start] 识别码:{UniqueAddress}{If(ThemeCheckOne(9), "已解锁反馈主题", "")}")
122+
#End If
119123
Log($"[Start] 程序路径:{PathWithName}")
120124
Log($"[Start] 系统编码:{Encoding.Default.HeaderName} ({Encoding.Default.CodePage}, GBK={IsGBKEncoding})")
121125
Log($"[Start] 管理员权限:{IsAdmin()}")
@@ -131,6 +135,7 @@ WaitRetry:
131135
Setup.Load("SystemDebugAnim")
132136
Setup.Load("ToolDownloadThread")
133137
Setup.Load("ToolDownloadCert")
138+
Setup.Load("ToolDownloadSpeed")
134139
'网络配置初始化
135140
ServicePointManager.Expect100Continue = True
136141
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12

Plain Craft Launcher 2/Controls/MyListItem.xaml.vb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ Public Class MyListItem
345345
Return _Checked
346346
End Get
347347
Set(value As Boolean)
348-
SetChecked(value, False, True)
348+
SetChecked(value, False, value <> _Checked) '仅在值发生变化时触发动画 (#4596)
349349
End Set
350350
End Property
351351
''' <summary>

Plain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
End Sub
7373

7474
Public Sub Btn1_Click() Handles Btn1.Click
75+
TextArea.Validate() '#5773
7576
If MyConverter.IsExited OrElse Not TextArea.IsValidated Then Exit Sub
7677
MyConverter.IsExited = True
7778
MyConverter.Result = TextArea.Text

Plain Craft Launcher 2/Controls/MyResizer.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ Public Class MyResizer
301301
End Sub
302302

303303
Private Sub updateMouseDown()
304-
Dim flag As Boolean = Mouse.LeftButton = MouseButtonState.Released
304+
Dim flag = (GetAsyncKeyState(&H1) And &H8000) = 0 '调用原生API判断鼠标是否抬起,如果使用WPF的API的话鼠标不在窗口上时不会更新状态 (#5655)
305305
If flag Then
306306
resizeRight = False
307307
resizeLeft = False
@@ -311,5 +311,5 @@ Public Class MyResizer
311311
End Sub
312312

313313
Private Declare Function GetCursorPos Lib "user32.dll" (<Out()> ByRef lpPoint As PointAPI) As Boolean
314-
314+
Private Declare Function GetAsyncKeyState Lib "user32.dll" (vKey As Integer) As Short
315315
End Class

Plain Craft Launcher 2/Controls/MyScrollViewer.vb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
(GetType(ComboBox).IsAssignableFrom(SourceType) AndAlso CType(e.Source, ComboBox).IsDropDownOpen) OrElse
1313
(GetType(TextBox).IsAssignableFrom(SourceType) AndAlso CType(e.Source, TextBox).AcceptsReturn) OrElse
1414
GetType(ComboBoxItem).IsAssignableFrom(SourceType) OrElse
15-
TypeOf e.Source Is CheckBox
16-
) Then
15+
TypeOf e.Source Is CheckBox) Then
1716
'如果当前是在对有滚动条的下拉框或文本框执行,则不接管操作
1817
Exit Sub
1918
End If

Plain Craft Launcher 2/FormMain.xaml.vb

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@ Public Class FormMain
1010
Dim FeatureList As New List(Of KeyValuePair(Of Integer, String))
1111
'统计更新日志条目
1212
#If BETA Then
13-
If LastVersion < 354 Then 'Release 2.9.3
13+
If LastVersion < 357 Then 'Release 2.10.0
14+
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "新增:下载资源包、光影包、数据包"))
15+
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "新增:允许设置文件下载源"))
16+
FeatureCount += 9
17+
BugCount += 26
18+
End If
19+
If LastVersion < 355 Then 'Release 2.9.3
1420
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:Minecraft 会优先使用独立显卡运行"))
1521
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:简化下载新版本第二步的 UI"))
1622
FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:使用新的版本隔离策略"))
@@ -66,7 +72,13 @@ Public Class FormMain
6672
'3:BUG+ IMP* FEAT-
6773
'2:BUG* IMP-
6874
'1:BUG-
69-
If LastVersion < 353 Then 'Snapshot 2.9.3
75+
If LastVersion < 356 Then 'Snapshot 2.10.0
76+
FeatureList.Add(New KeyValuePair(Of Integer, String)(5, "新增:下载资源包、光影包、数据包"))
77+
FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "新增:允许设置文件下载源"))
78+
FeatureCount += 9
79+
BugCount += 26
80+
End If
81+
If LastVersion < 354 Then 'Snapshot 2.9.3
7082
If LastVersion = 352 Then
7183
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:低版本 MC 没有声音"))
7284
FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:若不安装 Mod 加载器,则无法安装 OptiFine 1.14+"))
@@ -145,7 +157,7 @@ Public Class FormMain
145157
'整理更新日志文本
146158
Dim ContentList As New List(Of String)
147159
Dim SortedFeatures = FeatureList.OrderByDescending(Function(f) f.Key).ToList
148-
If Not SortedFeatures.Any() AndAlso FeatureCount = 0 AndAlso BugCount = 0 Then ContentList.Add("龙猫忘记写更新日志啦!可以去提醒他一下……")
160+
If Not SortedFeatures.Any() AndAlso FeatureCount = 0 AndAlso BugCount = 0 Then ContentList.Add("没有更新日志……")
149161
For i = 0 To Math.Min(9, SortedFeatures.Count - 1) '最多取 10 项
150162
ContentList.Add(SortedFeatures(i).Value)
151163
Next
@@ -311,8 +323,8 @@ Public Class FormMain
311323
'启动加载器池
312324
Try
313325
JavaListInit() '延后到同意协议后再执行,避免在初次启动时进行进程操作
314-
Thread.Sleep(200)
315-
DlClientListMojangLoader.Start(1)
326+
Thread.Sleep(100)
327+
DlClientListMojangLoader.Start(1) 'PCL 会同时根据这里的加载结果决定是否使用官方源进行下载
316328
RunCountSub()
317329
ServerLoader.Start(1)
318330
RunInNewThread(AddressOf TryClearTaskTemp, "TryClearTaskTemp", ThreadPriority.BelowNormal)
@@ -743,12 +755,12 @@ Public Class FormMain
743755
End If
744756
Next
745757
End If
746-
'自定义主页
758+
'主页
747759
Dim Extension As String = FilePath.AfterLast(".").ToLower
748760
If Extension = "xaml" Then
749-
Log("[System] 文件后缀为 XAML,作为自定义主页加载")
761+
Log("[System] 文件后缀为 XAML,作为主页加载")
750762
If File.Exists(Path & "PCL\Custom.xaml") Then
751-
If MyMsgBox("已存在一个自定义主页文件,是否要将它覆盖?", "覆盖确认", "覆盖", "取消") = 2 Then
763+
If MyMsgBox("已存在一个主页文件,是否要将它覆盖?", "覆盖确认", "覆盖", "取消") = 2 Then
752764
Exit Sub
753765
End If
754766
End If
@@ -927,6 +939,9 @@ Public Class FormMain
927939
DownloadLiteLoader = 9
928940
DownloadMod = 11
929941
DownloadPack = 12
942+
DownloadDataPack = 13
943+
DownloadResourcePack = 14
944+
DownloadShader = 15
930945
SetupLaunch = 0
931946
SetupUI = 1
932947
SetupSystem = 2
@@ -957,18 +972,9 @@ Public Class FormMain
957972
Case PageType.VersionSetup
958973
Return "版本设置 - " & If(PageVersionLeft.Version Is Nothing, "未知版本", PageVersionLeft.Version.Name)
959974
Case PageType.CompDetail
960-
Dim Project As CompProject = Stack.Additional(0)
961-
Select Case Project.Type
962-
Case CompType.Mod
963-
Return "Mod 下载 - " & Project.TranslatedName
964-
Case CompType.ModPack
965-
Return "整合包下载 - " & Project.TranslatedName
966-
Case Else 'CompType.ResourcePack
967-
Return "资源包下载 - " & Project.TranslatedName
968-
End Select
975+
Return "资源下载 - " & CType(Stack.Additional(0), CompProject).TranslatedName
969976
Case PageType.HelpDetail
970-
Dim Entry As HelpEntry = Stack.Additional(0)
971-
Return Entry.Title
977+
Return CType(Stack.Additional(0), HelpEntry).Title
972978
Case Else
973979
Return ""
974980
End Select

Plain Craft Launcher 2/Modules/Base/ModBase.vb

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ Public Module ModBase
1313
#Region "声明"
1414

1515
'下列版本信息由更新器自动修改
16-
Public Const VersionBaseName As String = "2.9.3" '不含分支前缀的显示用版本名
17-
Public Const VersionStandardCode As String = "2.9.3." & VersionBranchCode '标准格式的四段式版本号
16+
Public Const VersionBaseName As String = "2.10.0" '不含分支前缀的显示用版本名
17+
Public Const VersionStandardCode As String = "2.10.0." & VersionBranchCode '标准格式的四段式版本号
1818
Public Const CommitHash As String = "" 'Commit Hash,由 GitHub Workflow 自动替换
1919
#If BETA Then
20-
Public Const VersionCode As Integer = 355 'Release
20+
Public Const VersionCode As Integer = 357 'Release
2121
#Else
22-
Public Const VersionCode As Integer = 354 'Snapshot
22+
Public Const VersionCode As Integer = 356 'Snapshot
2323
#End If
2424
'自动生成的版本信息
2525
Public Const VersionDisplayName As String = VersionBranchName & " " & VersionBaseName
@@ -745,7 +745,6 @@ Public Module ModBase
745745
Dim IsRight As Boolean = FilePath.EndsWithF("\")
746746
FilePath = Left(FilePath, Len(FilePath) - 1)
747747
GetPathFromFullPath = Left(FilePath, FilePath.LastIndexOfAny({"\", "/"})) & If(IsRight, "\", "/")
748-
If GetPathFromFullPath = "" Then Throw New Exception("不包含路径:" & FilePath)
749748
Else
750749
'是文件路径
751750
GetPathFromFullPath = Left(FilePath, FilePath.LastIndexOfAny({"\", "/"}) + 1)
@@ -2333,13 +2332,17 @@ NextElement:
23332332
''' <param name="FileName">文件名。可以为“notepad”等缩写。</param>
23342333
''' <param name="Arguments">运行参数。</param>
23352334
Public Sub ShellOnly(FileName As String, Optional Arguments As String = "")
2336-
FileName = ShortenPath(FileName)
2337-
Using Program As New Process
2338-
Program.StartInfo.Arguments = Arguments
2339-
Program.StartInfo.FileName = FileName
2340-
Log("[System] 执行外部命令:" & FileName & " " & Arguments)
2341-
Program.Start()
2342-
End Using
2335+
Try
2336+
FileName = ShortenPath(FileName)
2337+
Using Program As New Process
2338+
Program.StartInfo.Arguments = Arguments
2339+
Program.StartInfo.FileName = FileName
2340+
Log("[System] 执行外部命令:" & FileName & " " & Arguments)
2341+
Program.Start()
2342+
End Using
2343+
Catch ex As Exception
2344+
Log(ex, "打开文件或程序失败:" & FileName, LogLevel.Msgbox)
2345+
End Try
23432346
End Sub
23442347
''' <summary>
23452348
''' 前台运行文件并返回返回值。

Plain Craft Launcher 2/Modules/Base/ModLoader.vb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -625,8 +625,8 @@ Restart:
625625
End Sub
626626
Public Function LoaderTaskbarProgressGet() As Double
627627
Try
628-
If Not LoaderTaskbar.Any Then Return 1
629-
Return MathClamp(LoaderTaskbar.Select(Function(e) e.Progress).Average(), 0, 1)
628+
If Not LoaderTaskbar.Where(Function(l) l.Show).Any Then Return 1
629+
Return MathClamp(LoaderTaskbar.Where(Function(l) l.Show).Select(Function(l) l.Progress).Average(), 0, 1)
630630
Catch ex As Exception
631631
Log(ex, "获取任务栏进度出错", LogLevel.Feedback)
632632
Return 0.5

0 commit comments

Comments
 (0)