Releases: Meloong-Git/PCL
2.11.2
联机优化
- 若有加入者的网络环境比房主更好,会提示可以让那位加入者担任房主
- 中继节点负载均衡算法优化
- 只选择 MC 中继节点进行连接,避免连接到低质量节点导致卡顿
- 大幅降低节点在线率在负载算法中的权重
- 允许自动选择非 TCP 协议的、带有即将下线标签的、在线状态不是优秀的节点
- 会有 1% 的概率选择 0 负载的节点,而不是固定不选择它们(如果节点存在问题,可能才导致它是 0 负载,所以此前不会选择它们,但这又会导致 PCL 不会连接新增的节点)
- 现在会在多个禁止中继的节点中选择一个作为发现节点,以实现负载均衡
- 会检查是否与房主都设置了自定义节点,以防只有一方设置了导致连不上
- 允许设置优先直连或优先低延迟,以降低节点中转负载
- 为侦听的端口号添加了一定的随机性,以降低端口被占用的概率(#7451,@dongtz123)
- 若正使用中继节点,会更准确地显示网络情况
- 仅创建房间时不再连接中继节点
- 为节点列表 API 添加了缓存作为回退,以提高可用性
- 联机设置的贡献节点选项会给出更详细的说明
- 若联机模块因为端口被占用而崩溃,会给出详细的解决方案
- 更新联机的内置帮助,现在离线模式直接选择房间就能加入,不应手动输入 IP(LTCatt/PCL2Help#437,PR @kuankqaq)
- 修复了以下 4 个联机相关的 Bug
- 新用户首次启动联机可能出错(#7346)
- 俄语等环境下无法正常联机(#7435,@Arrogant-BOT)
- 创建房间时会显示“正在连接到房主”
- 启动联机时会冗余地检查一次配置
其他更新内容
- 帮助库中添加对 Oculus 的介绍(LTCatt/PCL2Help#440,PR @kuankqaq)
Bug 修复
- 若没有 Path 环境变量则无法启动游戏(#7444,@Cshdhshsj)
- 帮助库中“将 PCL 添加到 Windows 安全中心白名单”的配图有误(LTCatt/PCL2Help#426,@lihartx,PR @kuankqaq)
2.11.1
嘿,联机的优化来了!现在离线登录也能直接加入房间,不需要房主装 Mod 啦!
不过,MC 玩家实在太多了。根据目前的数据,如果要让联机能在正式版 PCL 稳定中继,可能还需要 100 个服务器节点……
所以…… 我们需要你的帮助!!!
如果你有空闲的服务器,非常欢迎 搭建一个共享节点,搭建后在 此处 提交,然后大家就可以使用你的服务器辅助联机了!
如果大家能出一份力,这或许也不是不可能的事……
此外,如果你在 10 月仅赞助了 6.66 档位,也可以收到这个版本的更新!我知道 6.66 档位不包含后续更新,所以仅此一次哦……看看爱发电私信吧 :D
祝大家联机愉快!
联机优化
- 使用离线登录也可以直接加入联机房间了
- 若复制了邀请码,则可以直接快速加入房间
- 会从所有共享节点中自动选择负载最低的进行中继连接(#7383,@zkitefly)
- 关闭 PCL 时总是会提示是否退出联机,防止在关闭 PCL 时无意地关闭或退出了房间(#7357,@baguotao233)
- 允许自定义要连接的节点
- 若通过中继连接到房主,会显示中继情况与层数
- 在设置添加“贡献节点”和“查看节点状态”按钮,暂时移除老好人模式
- 帮助库更新:添加联机教程(LTCatt/PCL2Help#436,PR @WForst-Breeze)
- 修复 RPC 端口被占用导致 CLI 无法获取输出的 Bug(#7351,@tangge233)
- 修复 Listener 端口被占用导致启动联机模块失败的 Bug
- 修复了 PCL 的联机无法与其他手动开启的 EasyTier 正常共存的 Bug
其他更新内容
- 新主页预设:Minecraft 更新摘要(#7380,作者 @pynickle)
- 将社区资源的最新版本筛选改为 1.21.10
- 将 EasyTier 添加到特别鸣谢!非常感谢 EasyTier 提供了联机模块!
- 更新 10 月赞助者列表,感谢大家的超级支持!
Bug 修复
- 家园披风的翻译缺失(#7353,@YANHAORANG,PR @wyc-26)
- 启动第三方客户端时可能出错:分析资源文件索引地址失败(#7369,@LuckyPotion)
- 下载失败时,下载管理页面可能不会显示完整的错误信息
- 依然无法处理部分网络请求的超时
技术性更改
- 新自定义事件类型:加入房间,可用于自动加入指定邀请码的联机房间
- 换用 JSON 输出解析 CLI 结果(#7351,@tangge233)
- ValidateInteger 已允许输入前导 0(#7375,@llzlloll,PR @wyc-26)
2.11.0
联机回归!
- 完全免费开源,超级简单好用,小刻用了都说好!
- 使用开源软件 EasyTier 实现:https://easytier.cn/
其他更新内容
- 添加铜披风的中文译名(#7322,@NORTHMELON2008,PR @ruollin)
- 禁止在未解压时直接使用压缩包中的 PCL,以避免新玩家丢失数据(@Light-Beacon)
- 修改设置页面左边栏图标以匹配标题栏图标
Bug 修复
- 无法启动部分由其他启动器安装的 Forge(#7306,@HowardZHY)
- 部分情况下事件“下载文件”导致崩溃(#7319,@ShaneZhao1230)
- 解压依然可能出现长路径问题(#7329,@w51637382)
- 若联网主页每次加载提供的内容都不一样,在加载成功 10 分钟后手动刷新主页,会导致 PCL 高频率地重新下载主页(#7330,@fengxiangQAQ)
- 下载线程在下载到一半时无法正常触发超时,导致不会自动中断重试(#7337,@oiikioi)
- 一个安全漏洞(为降低潜在影响,会在正式版更新后披露,GHSA-gp33-rfmf-5f38,@hans362)
- 无法下载社区资源图标时,会弹出大量的下载失败提示
- 点击已选中的单选框依然会播放动画
- 替换标记 {varible} 存在拼写错误,应为 {variable}
- 为保证兼容性,{varible} 依然可用
技术性调整
- 事件“刷新主页”回调为 2.10.8 之前的行为,即固定刷新自定义主页,而非刷新当前所在的页面,以与事件名称保持一致(#7298,@fengxiangQAQ)
- 如果需要刷新自定义主页以外的页面(例如帮助页面或子页面),仍可以使用事件“刷新页面”
- 替换标记 {variable} 指定的变量若不存在,支持替换为一个可选的默认值(#7318,PR @Light-Beacon)
- 用法:{variable:变量名:默认值}
- 事件“打开网页”支持 minecraft-preview:// 协议(#7338,@ShaneZhao1230,PR @MoYuan-CN)
- 在自定义 XAML 教程中添加了“进阶:高级自定义事件”卡片,以展示连续触发多个事件搭配 {variable} 替换标记的效果
2.10.9
自定义事件
- 添加了 Wiki 页面 以给出更详细的示例与说明
- 支持为一个控件设置多个自定义事件,并按照顺序依次执行,详情参见 Wiki 页面(#5684,@Light-Beacon,PR @Open-KFC)
- 添加了下列新事件,详情参见 Wiki 页面
- 修改变量:写入一个自定义变量,以便后续在替换标记中使用(#5684,@Light-Beacon)
- 弹出提示:在左下角弹出一个提示条
- 已有事件调整
- 刷新页面 / 刷新主页:现在可以刷新任意可刷新页面,等同于按下 F5
- 刷新帮助:若提供了非空的参数,则不显示弹出提示(静默执行)
- 弹出窗口:可以可选地提供第三个参数,以修改弹窗确认按钮的文本
- 切换页面:支持使用枚举的英文名作为参数;子页面参数现在是可选的
- 下载文件:会在开始下载前弹出确认提示,以确保安全性
- 修改设置:不再允许修改加密设置
- 以下控件现已支持触发自定义事件
MyCard:若可以展开则在 展开/折叠 时触发,若不可以则在直接点击时触发MyCheckBox、MyRadioBox、MyRadioButton:在勾选状态改变时触发MyComboBox:在选中的项改变时触发MyExtraButton、MyExtraTextButton、MyMenuItem:在点击时触发MyTextBox、MySearchBox:在按下回车时触发
- XAML 的
EventType与EventData属性换用附加属性实现,PCL 会自动替换以保证兼容性,但如果在罕见情况下遇到了错误,可以手动进行如下替换:EventType→local:CustomEventService.EventTypeEventData→local:CustomEventService.EventData
- 当参数数量不够时,会给出更明确的提示
替换标记
- 添加了 Wiki 页面 以给出更详细的示例与说明
- 添加了下列替换标记,详细介绍请参见上方的 Wiki 页面
- 读取使用“修改变量”自定义事件设置的变量:{varible:变量名}
- 读取 PCL 设置:
{setup:设置名} - PCL 版本信息:
{pcl_version}、{pcl_version_code} - PCL 分支信息:
{pcl_version_branch}、{pcl_branch} - 识别码:
{identify} - PCL 程序路径:
{path_with_name} - 缓存文件夹路径:
{path_temp}
- 下列设置现已支持使用替换标记
- 自定义主页的下载地址(#5684,@Light-Beacon)
- 启动选项 → 自定义信息,以及对应的版本独立设置
- 高级选项 → Java 虚拟机参数,以及对应的版本独立设置
- 高级选项 → 游戏参数,以及对应的版本独立设置
- 自定义主页、自定义帮助现能够使用全部替换标记(#5552,@zhuluzyy)
帮助库更新
- 添加“替换标记”页面
- 重写“自定义主页与帮助 XAML 格式”中的自定义事件教学
- 删除“自定义主页与帮助 XAML 格式”中并不存在的
EventType(#7287,@rt56cs) - 移除无效的 Fallback 图床(LTCatt/PCL2Help#431,PR @z0z0r4)
其他更新内容
- 如果版本设置了自定义描述,会在标题后面以淡灰色显示其版本号(#7193,@EggyPartyMc)
MyImage的FallbackSource属性再次允许非网络图片(#7209)- 若清理游戏垃圾时没有可清理的文件,则不强制重启 PCL(#7217,@XiaoU-Say-JE)
- 更新 9 月赞助者列表,非常感谢大家的支持 Orz
Bug 修复
- 若自定义主页未提供版本号,可能会高频率检查主页版本(#6245,@fengxiangQAQ)
- 更新/删除 Mod 时可能反复弹窗提示删除到回收站(#7189,@Calendula47)
- 在 Modrinth 下载 Mod/数据包 混合工程时可能定位到错误的文件夹(#7195,@afi130)
- 下载时缓存文件夹被删除可能导致连续出错(#7214,@hongggggv)
- 下载源不支持多线程下载可能会直接导致失败(#7220)
- 下载 Mod 图标失败会大量弹出报错(#7238,@collguys)
- 无法安装 MMC 整合包(#7285,@xingteh)
- 更新失败替换文件的说明中,提示的新文件的路径有误
- 更新时几乎必定报错:删除老版本文件时权限不足
- 在长路径下首次启动 Forge 会崩溃
- 自定义帮助 XAML 未应用 GHSA-x9wr-mgmx-3hqp 的修复
- 一个低危漏洞;为降低潜在影响,会在正式版更新数日后披露(GHSA-22mj-jjhv-rxm4,发现者 @yichenGZC,汇报者 @copytiao)
2.10.8
2.10.7
网络与下载稳定性优化
- 会优先使用 IPv4 访问 Modrinth,以提高成功率(#6887,@bviibvii)
- 会根据历史网络请求是否成功来自动切换请求 IP,以提高成功率(#7157,@pover0k)
- 会检查特定网络请求返回的是否是 json 格式的文本,如果没有则触发重试,以提高成功率
- 优化网络配置,加快网络请求速度
- 改善多线程下载引擎的资源释放逻辑
修复了以下 5 个可能导致下载问题的 Bug:
- 大量下载时下载速度可能会越来越慢直至报错(#7007,@SerinaNya)
- 可能报错尝试开始下载线程失败(#7029)
- BMCLAPI 下载可能由于 Too Many Request 判为失败(#7084,@Evernight-Cyrene)
- 触发“由于速度过慢断开链接”可能导致下载卡在 99%(#7132,@SkollClassic)
- 无法从 MCIM 源下载部分社区资源文件
其他更新内容
- 允许在版本设置中设置禁止更新 Mod,以防整合包玩家误操作(#6610,@USTC-XeF2,PR @wyc-26)
- 为整合包打包添加 TaCZ 枪包选项(#6978,@Tianpao,PR @wyc-26)
- 禁止 PCL 以任何方式删除整个桌面、我的文档或磁盘根目录——有玩家把这些东西添加成 MC 文件夹,然后忽略警告把 MC 文件夹删了,我的妈呀(#7030,PR @wyc-26)
- 扩展 Java 搜索的支持范围(#7151,PR @lingting)
- 由于已不再需要,删除手动安装包下载功能
- 优化更新失败时的提示信息
- 更新 8 月赞助者列表,非常感谢大家的支持与鼓励!
- 更新 Mod 数据库
崩溃分析优化:
- 优化 Mod 互不兼容的提示信息(#5115,@MoYuan-CN)
- 支持识别 JVM 参数有误导致的崩溃(#7003,@zwz211123,PR @wyc-26)
- 优化玩家实体导致崩溃的提示信息(#7032,BiliBili Boom_mao,PR @pynickle)
- 若整合包需要 PCL 不兼容的加载器,允许选择跳过它的安装(#5451,@Hamster-github)
Bug 修复
- 整合包搜索中科幻类型没有结果(#1085,@212112111zwl)
- 现代化 UI 的标题有意外的“主页”标记(#1567,@SuoHouDaiShi)
- 错误分析误报 Night Config 存在问题,但实际上是配置文件损坏(#4068,@a8791881,PR @wyc-26)
- 返回置顶可能报错“未找到合适的 RealScroll”(#5061,@ZEFDERERF,PR @shatyuka)
- 若自定义主页内容在 Measure 或 Arrange 阶段出错,会导致 PCL 在打开时闪退(#5377,@CreeperIsASpy)
- 极偶然情况下会错误提示加载 .minecraft 版本列表失败(#5617)
- 可能会高频率检查自定义主页版本(#6245,@copytiao)
- 可能无法启动 1.20+:原版无反应,Forge 提示 Timed out trying to setup the Game Window(#6263,鸣谢 @TerseBanjo28710)
- 进入页面的动画偶尔与预期不一致(#6602,@Emmm2333doge,PR @shatyuka)
- 登录失败:未将对象引用设置到对象的实例(#6683,@Wait911)
- 背景音乐数量显示有误(#6855,@YiLouwdkwxcy,PR @copytiao)
- 重命名版本失败会导致版本 json 文件被删除(#6876,@ishohsi,PR @pynickle)
- 若导出整合包时版本被收藏,其他人导入后版本也会自动被收藏(#6908,@misividkoukou,PR @wyc-26)
- 特定情况下无法更改皮肤(#7017)
- 若用被封禁的微软账户进行刷新登录,未正确显示错误说明(#7023,PR @pynickle)
- 部分登录超时的错误信息未明确提示是登录超时(#7025,PR @wyc-26;#7135)
- 获取 Authlib-Injector 皮肤失败:离线 Uuid 无正版皮肤文件(#7033)
- 用于向后兼容的 IsSwaped 属性未正常生效(#7056,PR @Open-KFC)
- MyImage 下载图片可能存在线程冲突(#7112,@Evernight-Cyrene)
- 将版本重命名为当前名称末尾加 _temp 导致出错(#7138,@CN171-1)
- 参数设置无法正确处理换行(#7159,@FQO3)
- 若获取 Authlib-Injector 下载信息失败,会在文件不存在时继续启动,导致游戏崩溃(#7161,@copytiao)
- 重置启动设置会导致默认版本隔离设置被误修改
技术性调整
2.10.6
更新内容
重新启用 MCIM 社区资源镜像源(#6656,鸣谢 @z0z0r4)
- 如果在下载 Mod、整合包时出现问题,这应当会有所帮助……
对中国移动云盘导致的网络错误添加提示(#6586,@JimmyKudo1015)
输入服务器地址时,会自动将中文标点更换成英文的(#6970,PR @youzi-3222)
移除在下载时返回 MC 版本选择页的提示(#6976,PR @copytiao)
更换部分主页网址(@Light-Beacon,@Deep-Dark-Forest,@MFn233)
帮助库编修(LTCatt/PCL2Help#428,LTCatt/PCL2Help#429,PR @copytiao)
匿名数据收集
- 当下载失败、PCL 出错、游戏崩溃等事件时,PCL 会匿名上报情况,以通知龙猫 “哦吼,出错了”,让龙猫能更好地修 Bug……(PCL 不会上传或收集任何个人信息,包括上报的东西里面也没有!)
- 你可以在设置中关闭上报,不过龙猫就不知道你遇到了什么 Bug 了……
- 详情:#7036
Bug 修复
复制或剪切文本时可能会卡顿且无法正常复制(#5172,@hxabcd,PR @ABA2396)
解压整合包文件可能出现长路径问题(#6844)
可能无法启动由 HMCL 安装的 Forge 版本(#6896,@rjdxxxxxccc,PR @copytiao)
正版登录中如果出现账号异常,不会正常提供错误信息(#6900,@ShiHuaideqingxu)
std in/out 编码参数可能被错误地忽略(#6934,@copytiao)
以特定方式拖入文件可能导致崩溃(#6950,@bilixxb)
特定情况下,可能无法进行正版登录(#6995,@Alexei-mo)
可能会把不是 Windows 用户名的日志给错误地打码了
下载失败时可能错误地将下载了一半的文件输出
部分主页预设无法访问
技术性调整
修改自定义启动参数设置的名称(#6904,PR @MoYuan-CN)
IsSwaped 属性拼写错误,应为 IsSwapped(#6971,PR @pynickle)
新 EventType "修改设置":允许修改 PCL 的一个设置项(#6973,PR @Light-Beacon)
2.10.5
2.10.4
网络底层框架与下载稳定性优化
重构网络模块,全面换用 HttpClient(#6407,PR @shimoranla)
网络请求支持 HTTP 缓存协商(#6467,@bangbang93)
小文件缓存使用 MemoryStream 而非 Queue 以提高性能
当首次下载失败时,会关闭多线程下载并自动重试,以提高成功率
若获取 OptiFine 官方源版本列表失败,会自动重试 3 次
当多个下载源返回不一样的文件时,会自动选择正确的那一个
其他更新内容
Mod 管理支持直接按 Ctrl+A 全选(#4311,@Louis-Harsune,PR @Open-KFC)
从 Mod 管理页面跳转到下载时,自动搜索管理页面搜索框的内容(#6027,@micrcraft,PR @wyc-26)
在拖入文本或文件后,会自动将 PCL 窗口调到前面来(#6051,@Open-KFC)
支持识别更多无法登录微软账号的情况(#6140,@misividkoukou,PR @baiyuexiao496)
在将文件/文件夹删除到回收站时会显示系统删除弹窗(#6208,@misividkoukou,PR @shimoranla)
支持识别一个罕见的 JVM 错误(#6584,@TheColdWorld,PR @shimoranla)
更新资源筛选版本号至 1.21.8(#6585,PR @hongggggv)
更新 PCL 仓库地址(#6626,PR @Light-Beacon;LTCatt/PCL2Help#422,PR @wyc-26)
下载资源时,会单独记忆每种资源上次下载到的文件夹,以防混淆(#6641,@aeswda,PR @wyc-26)
由于 OptiFabric 停更,现 1.20.5+ 的 Fabric 与 OptiFine 不再兼容(#6673,@hongggggv,PR @MoYuan-CN;LTCatt/PCL2Help#423,PR @hongggggv)
优化版本 JSON 自动查找功能(#6677,@naiyang921)
优化修改正版皮肤和披风的菜单排布(#6717,PR @xrlzu)
搜索 Java 时会搜索 .jdks 文件夹(#6795,PR @lingting)
帮助库中添加对 NeoForge 的介绍(LTCatt/PCL2Help#418,PR @hongggggv)
帮助库中添加从 PCL 中下载社区资源的介绍(LTCatt/PCL2Help#420,PR @WForst-Breeze)
更新 6 月赞助者列表,感谢大家对 PCL 的大力支持!
更新 Mod 数据库
Bug 修复
以管理员权限运行时无法拖拽文件(#2531,@George-Lvqr,PR @shimoranla)
无法启动 LabyMod(#3225,@Geekmemz)
特定情况下无法使用 Authlib-Injector 登录(#5252,@PAKingdom,鸣谢 @shimoranla,PR @wyc-26)
背景音乐数量错误地计入了非音乐文件(#5762,@duoduo13123678,PR @CiiLu)
显示弹窗时部分快捷键依然有效(#5952,@666445)
带 inheritsFrom 的版本 libraries 会被放到原版的后面,导致潜在的启动失败(#5978,@Pigeon0v0)
搜索部分老版本 Forge Mod 时,若没有结果会导致出错(#6692,@MHIadg,PR @shatyuka)
CurseForge 资源下载详情页面可能为空白(#6224,@NAN-aNumBeR,鸣谢 @z0z0r4)
部分原版光影无法显示其版本列表(#6439,@beidiaojun123,PR @wyc-26)
重命名版本时可能会修改不应重命名的内容(#6443,@foxflyMC,PR @wyc-26)
由于实体导致崩溃的分析结果说明存在歧义(#6560,@mylittleblover)
可能无法更新 CurseForge 模组(#6578,@OcrSu)
开源版龙猫蓝配色错误(#6588,@shimoranla,PR @wyc-26)
从极老的版本更新后,版本隔离被错误地自动打开(#6590,@B-Ceramix,鸣谢 @Open-KFC、@LokmenoWer)
会使用过高版本的 Java 启动 LiteLoader(#6608,@VioletMiaw)
离线登录的中文用户名提示在重启 PCL 后显示异常(#6627,@shencike)
微软登录提示存在语病(#6634,@PaperCupCouldDo,PR @zkitefly)
用户名带感叹号时可能无法运行 Java(#6639,@unnisjaaljilbc,鸣谢 @00ll00,PR @LokmenoWer)
第三方登录站点不支持 https 时无法获取皮肤(#6700,@niuniuj,PR @shimoranla)
选择图片不能选择 jpeg 格式(#6774,@yuchenwei28,PR @wyc-26)
为 Java 参数添加双引号的方式有误(#6790,@shimoranla)
特定字符串可以绕开自定义主页对 xmlns 导入的检查(GHSA-x9wr-mgmx-3hqp,@shatyuka)
帮助库中对重生是希望的署名错了一个字(LTCatt/PCL2Help#425,PR @JIAZIYI007)
重命名版本时可能遗漏文件名与文件夹名不符的版本 JSON
下载失败时部分线程未正常中断,导致临时文件未清理、文件计数错误
当下载源未提供文件大小信息时,无法下载大小超过 5G 的文件
技术性调整
开源版中,允许使用环境变量导入 API Key(#6505,PR @shimoranla)
自定义 XAML 教程添加“下载版本”自定义事件的介绍(LTCatt/PCL2Help#410,PR @shimoranla)
自定义启动参数允许使用 Minecraft 版本 JSON 中的字符串替换标记,如 ${library_directory}