Releases: Meloong-Git/PCL
Releases · Meloong-Git/PCL
2.12.7.3
2.12.7.2
这次更新重构了部分基础框架,添加了 Meloong Core 支持库和 PCLCS 子工程。之后,PCL 的代码会逐渐迁移到 C#,以提高可维护性,并且逐渐抛弃一些老屎坑……
此外,这次也重做了更新流程,改为使用增量更新,以便之后快速修复各种 Bug!
不过,重构了几千行代码,大概率又会出不少新 Bug 就是了……(悲
一些这次没来得及的东西会在最近尽快修好的!
代码重构
- 添加 Meloong Core (瓜皮龙核心)支持库
- 它是基于 C# 13 的支持库,PCL 中的通用函数将逐步迁移、重构到 Meloong Core 中,以优化代码质量、为其他工程提供通用的函数库
- 该支持库使用 Apache 2.0 协议完全开源
- 添加 PCLCS 子工程
- 它是基于 C# 13 的 WPF 工程,PCL 中的非通用函数将逐步迁移、重构到 PCLCS 中,不过目前还是空的
- 去除了绝大多数的条件编译,以避免未来在重命名符号时遗漏
- 不再使用 Path 作为变量名,以避免与 System.IO.Path 混淆
- 将社区资源相关代码命名的
Comp(Component)统一重命名为Resource - 将
ModComp、ModMod拆分为 7 个不到 800 行的独立文件,并进行小幅重构 - 将
LogLevel重命名为NotifyLevel,并明确每个枚举项的行为 - 将编译配置名和常量统一为
DEBUG、SNAPSHOT、RELEASE,以与实际名称匹配 - 移除
SafeDictionary,改用标准库中的ConcurrentDictionary - 将 VB 的
Mid函数换为标准库中的String.SubString - 将
ModBase中的约 900 行代码重构或迁移到 Meloong Core 中 - 将其余设置页面迁移到新的
SettingService实现 - 版本独立设置改为按版本缓存读取到的值
优化
- 安装 CurseForge 整合包时,若部分文件已被 Mod 作者删除,会弹窗提示具体缺失哪些文件,且可以选择忽略并继续安装,而非直接安装失败
- 删除 MC 文件夹的确认步骤,改为输入
Potato而非确认删除四个字,以防简繁体不一致等情况 - 允许永久关闭启动页面的快照版提示
- 更新启动器时,会下载增量更新补丁,而非完整文件(#6577,@tangge233)
土豆码
- 替代原本的更新密钥和解锁码,作为新的爱发电赞助验证方式
- 由于算法改变,原本的赞助内容需要重新输入一次土豆码才能解锁,抱歉……
- 赞助后,不再需要分别输入更新密钥和解锁码,只需要输入一次土豆码就行
- 在输入土豆码时,会有更完善的引导、复制命令按钮
- 换用更安全的 ECDSA 加密算法
- 是的,就是土豆!
Bug 修复
- 版本 JSON 中,若支持库文件本身和 Windows Natives 中带有两个不同的 url 字段,PCL 会使用上级 URL 而非 Natives 指定的 URL,导致无法补全 Babric 的支持库文件(#5811,@wind-droid)
- 使用 MCIM 镜像源时无法安装部分 CurseForge 整合包(#8008,@HanhanRysn,鸣谢 @z0z0r4)
- 可能错误地触发下载超时(#8488,@cmcaz)
- 通过 Minecraft 更新提示进入下载页后,每次刷新页面都会自动跳转到该版本的下载页(#8490,@lactobionicAcid)
- 单个版本的版本独立设置会串到其他版本去,导致各种异常(#8508,@tiebai2012,PR @wyc-26)
- 无法正常获取
downloads.classifiers不为natives-windows的支持库文件下载信息 - 原先用于赞助验证的加密算法存在安全漏洞
API 更改
- 新替换标记:
{pcl_build_type}- 替换为 PCL 的构建类型,值为
Snapshot、Release、Debug之一
- 替换为 PCL 的构建类型,值为
- 新替换标记:
{pcl_md5}- 替换为 PCL 的 exe 文件的 MD5
2.12.6.2
2.12.6.1
优化
- 支持识别 2026 年愚人节快照(#8421、#8425,@Hill23333、@Eghost303)
- 不再对低版本 Minecraft 应用 LWJGL Unsafe Agent
- 将 Mod 中文名数据以压缩文件形式存储,以免部分 Mod 的名称被 Yara 规则当成病毒关键词,导致 PCL 被误报为病毒
- 更新回声洞
Bug 修复
- 无法使用 Java 25+ 启动 Forge(#8399,@lactobionicAcid)
- 无法为愚人节版本安装 Fabric(#8426,@i486-DX9)
- 在压缩包中运行 PCL 会导致程序闪退
- 程序文件中有两份 Mod 数据库
API 变更
- 替换标记
- {pcl_version} 现在有四段,例如
2.12.6.0 - {pcl_version_branch} 现在为中文的
快照版、正式版、开发版之一
- {pcl_version} 现在有四段,例如
2.12.6
优化
- 使用 LWJGL Unsafe Agent 修复 Minecraft 使用 Java 25+ 时的性能问题
- 非常感谢 @Glavo 制作的补丁,以及 USS_Shenzhou 的相关介绍!
- 不再对 Java 19+ 使用 Java Launch Wrapper
Bug 修复
- 重命名版本存在异常(#8367,@Pigcas,PR @wyc-26)
- 无法显示 Modrinth 整合包的版本列表(#8377,@shengritixing)
- 若 Minecraft 文件夹位于 PCL 路径下,则无法保存该文件夹的选择情况(#8392,@XianYuFish001,PR @wyc-26)
2.12.5
非常感谢 @wyc-26 的一大堆 PR!
社区资源下载优化
- 当一个项目同时有 Mod / 数据包 版时,可以直接跳转到另一种类的文件列表
- 更新版本筛选列表,添加 26.1、1.21.8、1.21.4、1.19.2,移除部分不常见版本(#8342,@premedbelt12044)
- 显示支持的 MC 版本范围时,从忽略 1.9- 提高为忽略 1.11-
Bug 修复
- 特定网络请求有极低概率失败(#8150,@Wonton5220)
- 无法重命名版本(#8349,PR @wyc-26)
- 下载管理刷新线程出错:指定的转换无效(#8350,@HanXiaoFengSheng)
- 无法保存选择的 Minecraft 文件夹(#8351,@XianYuFish001,PR @wyc-26)
- 使用中文搜索 Mod 时,部分结果会忽略筛选条件(#8353,@LLLLLLeob)
- 加密设置项损坏时无法自动重置设置(#8354,@illusionary147)
- 无法下载 NeoForge 26.1(#8357,@litQA,PR @wyc-26)
- ZGC 没有应用 UseCompactObjectHeaders
- 在登录微软账号时更换第三方登录的皮肤会导致崩溃
- 在更改皮肤时恰好登录过期会导致出错
2.12.4
Mod 中文搜索 · 下载优化
- 再次改善 Mod 中文搜索的准确度
- 在选取搜索关键词时,会优先选择更受欢迎的 Mod
- 优化中文搜索关键词分词
- 加载时会显示大致的加载进度
- 更新 Mod 中文名数据库
- 修复了以下 5 个相关 Bug
- 可能会在 CurseForge 搜索仅在 Modrinth 上有的 Mod,在 Modrinth 搜索仅在 CurseForge 上有的 Mod
- 无法搜索到部分 CurseForge Slug 和 Modrinth Slug 不一致的 Mod
- 若 Mod 中文名带有横杠,横杠后的部分会被错误地识别为后缀
- 部分 Mod 会显示“审核中”、“已失效”后缀
- 部分 Mod 的“NeoForge 版”不会作为后缀显示
内存管理优化
- 由于 ZGC 内存占用更大,内存管理设置默认改回 G1GC(#8281,@FiCn7430)
- 添加“调优 G1GC”选项,并额外添加了一些优化参数
- 在内存管理设置的 Tooltip 中说明 ZGC 与 G1GC 各自的优劣,以助自行取舍
- 不再指定 -Xmn,以允许 G1GC 自行决定新生代大小
- 为 Java 7 指定 MaxPermSize 以防止崩溃(#8286,PR @MegaWall3)
- 修复了以下 3 个相关 Bug
- 可能在不支持 ZGC 的系统上启动 ZGC,导致游戏无法启动
- 对 ZGC 应用了 UseCompactObjectHeaders,而非 G1GC
- 根据 Mod 个数预估内存占用时,将已禁用的 Mod 也算入了总数
启动参数生成稳定性优化
- 完全重构启动参数生成代码
- 优化参数分割、参数冲突时的去重算法,以允许通过设置覆盖 MC 自带参数
- 统一通行证 jar 改为在纯 ASCII 字符文件夹下释放
- 修复了以下 4 个相关 Bug
- 对特定参数格式的第三方 MC on 的处理有误
- 老版本 MC 中,统一通行证未指定 -Dnide8auth.client 参数
- 可能错误地为参数添加双引号
- 为参数添加双引号时不会为参数内部的双引号转义
其他更新内容
- 愚人节彩蛋调整(#1638,@iPodtouch6557)
- 在成功完成一次彩蛋之后,同年内就不再重复触发
- 放弃提示改为红色,触发频率增加,防瞎
- 添加了一些神秘机制,防红温
- 帮助库更新
- 修正【加入服务器】页面中,连接超时的解决方案的位置(Meloong-Git/PCLHelp#453,PR @kndxhz)
- 更新【将 PCL 添加到 Windows 安全中心白名单】页面,更贴合新版 Windows(Meloong-Git/PCLHelp#455,PR @AprLsity)
- 修订【使用 IntelliJ IDEA 获取帮助库】页面的符号错误(Meloong-Git/PCLHelp#456、Meloong-Git/PCLHelp#461,PR @Juicy-awa、@Kyou-Fujibayasi)
- 扩大 Java 自动搜索的范围(#8289,PR @icocoer)
- 删除 MC 文件夹前要求输入“确认删除”四个字,以防误删(#8329,@1511300235)
- 再次允许使用高版本 JRE,现在改为仅不允许使用特定文件夹下的 JRE
- 未解锁的隐藏主题会显示其实际名称,而非“???”
- 修复了以下 4 个 Bug
- 连接 Mojang 的服务可能失败,提示错误码 421(#8295,@Hoicey522)
- 无法访问爱发电(#8304,@lactobionicAcid)
- 在特定长路径下无法启动 Forge
- 部分背景图片自适应方式有误
2.12.3
重要更新内容
- Mod 搜索与下载优化
- 添加 [内存管理] 高级设置(#7951,@g1thubhack3r)
- 在高级启动选项与版本独立设置中均可修改
- 可以选择 G1GC、ZGC 或分代 ZGC,也可以关闭以手动设置相关 JVM 参数
- 下载引擎优化
- 优化 DNS 优选算法的性能与可靠性
- 优化 ResponseStream 的对象回收
- 将部分 SyncLock 改为 Interlocked,以优化性能
- 下载大文件前,只检查即将存放文件的硬盘空间,以加快速度
- 将下载基础超时从 10 秒延长到 15 秒
其他更新内容
- 背景图片自适应方式添加左、右、上、下选项(#7902,@Andy-Xie-1145)
- 使用背景图片自适应方式的位置选项时,图片会先等比例缩放以填充窗口(#7902,@Andy-Xie-1145)
- 添加对绷带、创可贴 Mod 的整合包导出支持
- 更新部分主页预设的地址
- 大幅优化内置搜索的性能
- 更新赞助者列表!最近有点忙,这个版本整得有点久了……感谢大家的支持!
Bug 修复
- 不支持部分音频属性会变化的音乐(#1111,@mrhzzel,PR @copytiao)
- 即使网络正常,也会有一部分文件在下载时超时(#7203,@lactobionicAcid)
- 同时下载多个版本可能导致下载卡住(#7925,@G-mare)
- 新版 Minecraft 版本号下,无法自动定位对应的版本文件夹(#7954,@MaplesXu)
- 通过编辑整合包导出配置文件,可以同时勾选冲突的选项(#7979,@com-in,PR @wyc-26)
- 解压非 UTF-8 编码的整合包会导致中文文件名出现乱码(#7980,@latiaotiao)
- 在复制了邀请码格式的文本时,会错误跳转到联机页面并出错(#7983,@Tea-chabai,PR @0x1A5)
- 按名称搜索 Mod 时经常没有结果(#7991)
- 模糊定位版本 JSON 的结果可能有误(#7996,@cmcaz,PR @wyc-26)
- 不再使用 FinalShell 自带的 Java(#8080,@zhangjianuo)
- 安装 LiteLoader + OptiFine 时 OptiFine 无效(#8147,@N123999,PR @wyc-26)
- 主页预设 [杂志主页] 无法加载(#8180,PR @CreeperIsASpy)
- 计算 Hash 时资源未正确释放(#8206,PR @tangge233)
- 会错误地提示部分 MMC 整合包中存在不兼容的加载器:org.lwjgl3(#8210,@WhiteXero)
- 社区资源下载在极偶然情况下出错(#8246,@minecraft-DYL)
- 社区资源的 GameVersions 属性可能存在重复的值
- DNS 优选可能失败
- 在下载前,可能重复检查同一个文件是否存在
2.12.2
修复了这几天搜不到 CurseForge 上的 Mod 和整合包的问题(#7965)。
联系了 CurseForge,他们说他们短时间内修不好,让我先用临时方案……没想到只是一个默认参数竟然能炸这么久……无语。
更新内容
- 会先尝试以 UTF-8 解压压缩包,若失败则换用 GB18030(#7883,@Qulinlins)
- 添加沉浸画和 Moonlight Lib Mod 的整合包导出支持
Bug 修复
- 在极罕见情况下切换 Mod 管理页面的筛选器导致出错(#7024)
- 多个线程同时读取文件或图片会导致出错(#7112,@Evernight-Cyrene)
- 批量禁用 Mod 后 Mod 标题的颜色有误(#7861,@FengguaYa)
- 偶发情况下 MyLocalModItem.GetUpdateCompareDescription 报错:未将对象引用设置到对象的实例(#7867,@VincentZyu233)
- 更换披风后不会更新当前选择的披风(#7894,@com-in,PR @wyc-26)
- 正式版更新日志错误地提示添加了联机功能(#7901,@MoYuan-CN)
- NeoForge 的 Alpha 版本会显示为稳定版(#7904,@3gf8jv4dv,PR @MoYuan-CN)
- 导出整合包时,若同时勾选“PCL 启动器程序”和“仅从 Modrinth 下载资源文件”,则导出的整合包会没有文件扩展名(#7907,@com-in)
- 计时回绕会导致下载管理刷新线程等各处代码出错(#7926,@Bobboom0921)
- 更新 Mod 时无法正确检测其他 mods 文件夹中的文件,且检测会消耗大量时间(#7929)
- 无法使用 CurseForge 搜索社区资源(#7965,@lejunqiu)
- libwebp.dll 被其他程序占用会导致 PCL 崩溃
- 未装备披风时不会选中“无披风”
API 变更
- 新的自定义事件:检查更新(#7932,@MapleSugar365,PR @wyc-26)