diff --git a/LICENCE b/LICENCE index ba3282f..f9e821b 100644 --- a/LICENCE +++ b/LICENCE @@ -1,26 +1,40 @@ -本文件仅作为指引您合理使用本存储库内容的指南,不是法律文件或协议。 +一、声明 -一、承诺与声明。 +本文件仅作为指南,不是法律文件或协议。但开发者在此承诺,在您遵守本指南且善意、合理使用的情况下,不会追究您的责任。 +法律上,开发者仍保留所有权利(All Rights Reserved),若情况恶劣,仍可能将诉讼作为最终手段。 -  开发者承诺,在您遵守本指南且善意使用的情况下,不会追究您的责任,但最终裁量权仍由开发者保留。 -  法律上,开发者仍保留所有权利(All Rights Reserved),且可能随时修改本指南,本指南并不是永久性保证。 -二、少量使用情形。 -  如果您仅合理使用本存储库中的少量内容,或是参考实现思路,您必须: -  1、给出适当的署名,且提供指向本存储库的链接。GitHub 上的 Fork 可视为满足此条。 -  2、不得以任何方式暗示开发者为您或您的使用作担保。 +二、轻度使用 -三、大量使用情形。 +若您仅参考了本存储库中极小部分的内容,或您在制作与 PCL 的实质功能不存在任何重叠的软件,则为轻度使用。 +其常见情形例如: +· 使用或参考存储库中极小部分的内容,来开发启动器或其他软件。 +· 虽参考了较大量的内容,但制作的软件与 PCL 的实质功能不存在任何重叠。 -  如果您基于该存储库创作衍生作品,或合理使用了本存储库中的较大量内容,您必须: -  1、给出适当的署名,且提供指向本存储库的链接。GitHub 上的 Fork 可视为满足此条。 -  2、不得以任何方式暗示开发者为您或您的使用作担保。 -  3、给出适当的说明,以明确表示该衍生作品是非官方内容。 -  4、使用本指南文件作为协议,不得附加额外条款。 -  5、该衍生作品的名称必须以 “PCL” 或 “Plain Craft Launcher” 开头,并在其后添加后缀。例如 “PCL 整合包优化版”、“PCL PR Collection”。 -  6、该衍生作品不得包含 PCL 的赞助解锁功能,或与其相近的功能或内容。例如将配色修改为蓝色色系以外的颜色。 -  7、以善意目的进行合理使用,不要用 PCL 来干坏事、恰烂钱、整烂活。开发者可能会将撤销所有授权作为最终手段。 +若属于轻度使用,您需要: +1、以适当的形式给出署名。 +2、不得将您的内容与 PCL 混淆,或暗示您的内容与 PCL 有关。 +  例如:您的内容不得使用 Planting Craft Launcher、PCL 手机版 等会造成混淆或暗示这与 PCL 有关的名称。 + + + +三、重度使用 + +若不符合轻度使用的情形,即为重度使用。 +其常见情形例如: +· 基于本存储库进行修改。 +· 参考存储库中较大量的内容,以制作或重新实现 PCL 的部分实质功能(例如启动或下载 Java 版 Minecraft,下载或管理 Mod 等)。 + +若属于重度使用,您需要: +1、明确表示您的内容是第三方基于 PCL 独立进行二次创作的产物。 +2、您的内容的名称必须以 Plain Craft Launcher (PCL) 开头,并在其后添加足以表现其由第三方修改的后缀。 +  允许的示例:PCL 某服务器魔改版、PCL PR Collection、PCL (XX Bug Fix)、PCL XXX修改版。 +  禁止的示例:PCL 某服务器特供版(暗示由官方提供)、PCL 3、PCL 手机版、PCL++、PCL Pro(这像是官方的后续作品)。 +3、在关于页面的首位给出龙腾猫跃的署名及对应的赞助链接,公开源代码,且继续使用本文件作为指南(可参考 CC BY-SC 协议)。 +4、软件若有 Minecraft 启动功能,则应实现与 McLaunchPrecheck 函数一致的 Minecraft 正版购买弹窗与赞助弹窗。 +5、软件在 Windows 系统上运行时,不应有与 PCL 的赞助解锁功能类似的功能或表现。 +  例如:界面的主要色相必须为蓝色(即使没有修改功能,改为其他色相也和需要赞助解锁的主题功能类似)。 ———————————— @@ -29,5 +43,7 @@ 因为没有法律专业人士检查,所以这不敢作为正式的法律协议,如果有专业人士愿意帮忙改一改我也很乐意…… 这些规则主要是为了阻止恶意的使用和 “山寨版” 的出现,常规、善意的使用都没啥问题的,放心吧! -如果你只是想参考一下,或者用了一小部分代码,署个名就行啦。 -如果你整了个魔改版,或者用了一大堆代码,请仔细参考上面的第三条。 +如果你只是参考了一小段代码,署个名就行啦,不用担心。 +如果对具体细节有疑问,欢迎在 https://github.com/Hex-Dragon/PCL2/discussions/new?category=%E6%8F%90%E9%97%AE 发帖询问! + +多谢大家啦! diff --git a/Plain Craft Launcher 2/Application.xaml.vb b/Plain Craft Launcher 2/Application.xaml.vb index beec27a..eddd8d5 100644 --- a/Plain Craft Launcher 2/Application.xaml.vb +++ b/Plain Craft Launcher 2/Application.xaml.vb @@ -131,6 +131,7 @@ WaitRetry: Setup.Load("SystemDebugAnim") Setup.Load("ToolDownloadThread") Setup.Load("ToolDownloadCert") + Setup.Load("ToolDownloadSpeed") '网络配置初始化 ServicePointManager.Expect100Continue = True ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 diff --git a/Plain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb b/Plain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb index ca7bcac..09ad043 100644 --- a/Plain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb +++ b/Plain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb @@ -1,4 +1,4 @@ -Public Class MyMsgInput +Public Class MyMsgInput Private ReadOnly MyConverter As MyMsgBoxConverter Private ReadOnly Uuid As Integer = GetUuid() @@ -72,6 +72,7 @@ End Sub Public Sub Btn1_Click() Handles Btn1.Click + TextArea.Validate() If MyConverter.IsExited OrElse Not TextArea.IsValidated Then Exit Sub MyConverter.IsExited = True MyConverter.Result = TextArea.Text diff --git a/Plain Craft Launcher 2/Controls/MyResizer.vb b/Plain Craft Launcher 2/Controls/MyResizer.vb index e0c21ed..1200a4b 100644 --- a/Plain Craft Launcher 2/Controls/MyResizer.vb +++ b/Plain Craft Launcher 2/Controls/MyResizer.vb @@ -301,7 +301,7 @@ Public Class MyResizer End Sub Private Sub updateMouseDown() - Dim flag As Boolean = Mouse.LeftButton = MouseButtonState.Released + Dim flag = (GetAsyncKeyState(&H1) And &H8000) = 0 '调用原生API判断鼠标是否抬起,如果使用WPF的API的话鼠标不在窗口上时不会更新状态 (#5655) If flag Then resizeRight = False resizeLeft = False @@ -312,4 +312,5 @@ Public Class MyResizer Private Declare Function GetCursorPos Lib "user32.dll" ( ByRef lpPoint As PointAPI) As Boolean + Private Declare Function GetAsyncKeyState Lib "user32.dll" (vKey As Integer) As Short End Class diff --git a/Plain Craft Launcher 2/FormMain.xaml.vb b/Plain Craft Launcher 2/FormMain.xaml.vb index 60fe898..fa1e874 100644 --- a/Plain Craft Launcher 2/FormMain.xaml.vb +++ b/Plain Craft Launcher 2/FormMain.xaml.vb @@ -10,7 +10,7 @@ Public Class FormMain Dim FeatureList As New List(Of KeyValuePair(Of Integer, String)) '统计更新日志条目 #If BETA Then - If LastVersion < 354 Then 'Release 2.9.3 + If LastVersion < 355 Then 'Release 2.9.3 FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:Minecraft 会优先使用独立显卡运行")) FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:简化下载新版本第二步的 UI")) FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:使用新的版本隔离策略")) @@ -66,7 +66,7 @@ Public Class FormMain '3:BUG+ IMP* FEAT- '2:BUG* IMP- '1:BUG- - If LastVersion < 353 Then 'Snapshot 2.9.3 + If LastVersion < 354 Then 'Snapshot 2.9.3 If LastVersion = 352 Then FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:低版本 MC 没有声音")) FeatureList.Add(New KeyValuePair(Of Integer, String)(1, "修复:若不安装 Mod 加载器,则无法安装 OptiFine 1.14+")) @@ -74,7 +74,7 @@ Public Class FormMain FeatureCount += 8 BugCount += 8 End If - If LastVersion < 352 Then 'Snapshot 2.9.2 + If LastVersion < 353 Then 'Snapshot 2.9.2 FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:Minecraft 会优先使用独立显卡运行")) FeatureList.Add(New KeyValuePair(Of Integer, String)(3, "优化:简化下载新版本第二步的 UI")) FeatureList.Add(New KeyValuePair(Of Integer, String)(2, "优化:使用新的版本隔离策略")) diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb index 267f92a..8b208e1 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb @@ -858,6 +858,7 @@ NextStack: "确定", If(IsHandAnalyze OrElse DirectFile Is Nothing, "", "查看日志"), If(IsHandAnalyze, "", "导出错误报告"), Button2Action:=If(IsHandAnalyze OrElse DirectFile Is Nothing, Nothing, Sub() + Try '弹窗选择:查看日志 If File.Exists(DirectFile.Value.Key) Then ShellOnly(DirectFile.Value.Key) @@ -866,6 +867,9 @@ NextStack: WriteFile(FilePath, Join(DirectFile.Value.Value, vbCrLf)) ShellOnly(FilePath) End If + Catch ex As Exception + Log(ex,"尝试打开文件失败",LogLevel.Hint) + End Try End Sub)) Case 3 '弹窗选择:导出错误报告 diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModJava.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModJava.vb index 05d2c98..8247568 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModJava.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModJava.vb @@ -372,6 +372,8 @@ ExitUserJavaCheck: For Each Java In AllowedJavaList '如果在官启文件夹启动,会将官启自带 Java 错误视作 MC 文件夹指定 Java,导致了 #2054 的第二例 If Java.PathFolder.Contains(".minecraft\cache\java") Then Continue For + '#5780 + If Java.PathFolder.Contains("PCL\MyDownload") Then Continue For If TargetJavaList.Contains(Java) Then '直接使用指定的 Java AllowedJavaList = New List(Of JavaEntry) From {Java} @@ -555,7 +557,7 @@ NoUserJava: '若不全为特殊引用,则清除特殊引用的地址 Dim JavaWithoutInherit As New Dictionary(Of String, Boolean) For Each Pair In JavaPreList - If Pair.Key.Contains("java8path_target_") OrElse Pair.Key.Contains("javapath_target_") OrElse Pair.Key.Contains("javatmp") Then + If Pair.Key.Contains("java8path_target_") OrElse Pair.Key.Contains("javapath_target_") OrElse Pair.Key.Contains("javatmp") OrElse Pair.Key.ContainsF("system32") Then Log("[Java] 位于 " & Pair.Key & " 的 Java 包含特殊引用") Else Log("[Java] 位于 " & Pair.Key & " 的 Java 不含特殊引用") diff --git a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb index 1d8dc13..dc867e3 100644 --- a/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb +++ b/Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb @@ -113,8 +113,10 @@ Public Module ModModpack '解压文件 Dim RetryCount As Integer = 1 Dim Encode = Encoding.GetEncoding("GB18030") + Dim InitialProgress = Loader.Progress Try Retry: + Loader.Progress = InitialProgress '完全不知道为啥会出现文件正在被另一进程使用的问题,总之多试试 DeleteDirectory(InstallTemp) ExtractFile(FileAddress, InstallTemp, Encode, ProgressIncrementHandler:=Sub(Delta) Loader.Progress += Delta * LoaderProgressDelta) @@ -828,9 +830,13 @@ Retry: Log("[Modpack] 找到压缩包中附带的启动器:" & Launcher) If MyMsgBox($"整合包里似乎自带了启动器,是否换用它继续安装?{vbCrLf}即将打开:{Launcher}", "换用整合包启动器?", "换用", "不换用") = 1 Then OpenExplorer(TargetFolder) - ShellOnly(Launcher, "--wait") '要求等待已有的 PCL 退出 - Log("[Modpack] 为换用整合包中的启动器启动,强制结束程序") - FrmMain.EndProgram(False) + Try + ShellOnly(Launcher, "--wait") '要求等待已有的 PCL 退出 + Log("[Modpack] 为换用整合包中的启动器启动,强制结束程序") + FrmMain.EndProgram(False) + Catch ex As Exception + Log(ex, "打开文件失败", LogLevel.Msgbox) + End Try Return End If Else diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb index b3de19c..2af82b7 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadClient.xaml.vb @@ -39,7 +39,7 @@ Version("id") = "20w14∞" Version("type") = "special" Version.Add("lore", GetMcFoolName(Version("id"))) - Case "3d shareware v1.34", "1.rv-pre1", "15w14a", "2.0", "22w13oneblockatatime", "23w13a_or_b", "24w14potato" + Case "3d shareware v1.34", "1.rv-pre1", "15w14a", "2.0", "22w13oneblockatatime", "23w13a_or_b", "24w14potato", "25w14craftmine" Type = "愚人节版" Version("type") = "special" Version.Add("lore", GetMcFoolName(Version("id"))) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb index 4346a46..8e9547a 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb @@ -590,7 +590,7 @@ Version("id") = "20w14∞" Version("type") = "special" Version.Add("lore", GetMcFoolName(Version("id"))) - Case "3d shareware v1.34", "1.rv-pre1", "15w14a", "2.0", "22w13oneblockatatime", "23w13a_or_b", "24w14potato" + Case "3d shareware v1.34", "1.rv-pre1", "15w14a", "2.0", "22w13oneblockatatime", "23w13a_or_b", "24w14potato", "25w14craftmine" Type = "愚人节版" Version("type") = "special" Version.Add("lore", GetMcFoolName(Version("id"))) diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadMod.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadMod.xaml index bcfb637..822a136 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadMod.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadMod.xaml @@ -33,6 +33,7 @@ + diff --git a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml index 5ad426d..857776a 100644 --- a/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml +++ b/Plain Craft Launcher 2/Pages/PageDownload/PageDownloadPack.xaml @@ -32,6 +32,7 @@ + diff --git a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb index 448df0b..ebbbc96 100644 --- a/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb +++ b/Plain Craft Launcher 2/Pages/PageLaunch/MySkin.xaml.vb @@ -243,7 +243,7 @@ Retry: {"Minecon2013", "Minecon 2013 参与者披风"}, {"Minecon2015", "Minecon 2015 参与者披风"}, {"Minecon2016", "Minecon 2016 参与者披风"}, {"Cherry Blossom", "樱花披风"}, {"15th Anniversary", "15 周年纪念披风"}, {"Purple Heart", "紫色心形披风"}, {"Follower's", "追随者披风"}, {"MCC 15th Year", "MCC 15 周年披风"}, {"Minecraft Experience", "村民救援披风"}, - {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"} + {"Mojang Office", "Mojang 办公室披风"}, {"Home", "家园披风"}, {"Menace", "入侵披风"}, {"Yearn", "渴望披风"} } Dim SelectionControl As New List(Of IMyRadio) From {New MyRadioBox With {.Text = "无披风"}} For Each Cape In SkinData("capes") diff --git a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml index 2a360f0..da4f899 100644 --- a/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml +++ b/Plain Craft Launcher 2/Pages/PageSetup/PageSetupUI.xaml @@ -284,7 +284,7 @@ - + diff --git a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml index 3bbab0c..46c1ab0 100644 --- a/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml +++ b/Plain Craft Launcher 2/Pages/PageVersion/PageVersionExport.xaml @@ -111,7 +111,7 @@