Ryorin1337 / pcl-patcher
git clone https://github.com/Ryorin1337/pcl-patcher.git
v1.0.1 · today
Unlock PCL2 RestrictMcDownload (restore MC download & modpack install) via dnlib IL patching
+45
stars, 24h · #213
+45
stars, 7 days · #993
+45
stars, 30 days · #6,557
45
★ total · +45% this week
8
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC#
LicenseMIT
Created2026-10-20 (today)
Last pushtoday
Watchers0
OwnerUser
Links
README excerpt
# pcl-patcher 解除 Plain Craft Launcher 2(PCL2)中 `ModSecret.RestrictMcDownload` 限制的补丁工具。 PCL2 在 2.99 等版本中以 `Public Const RestrictMcDownload As Boolean = True` 的形式在**编译期**禁用了 MC 下载与整合包安装功能。由于 VB 编译器会把 `Const` 内联并折叠,受影响的功能代码在官方 exe 中根本不存在,因此本工具除了把常量改为 `False`,还会用 IL 重建被删除的逻辑。 ## 原理 补丁共 5 处(基于 dnlib 实现): | # | 位置 | 修改内容 | |---|------|----------| | 1 | `PCL.ModSecret.RestrictMcDownload` | 常量 `True` → `False`(元数据 Constant blob `01` → `00`) | | 2 | `PCL.PageDownloadInstall.LoaderInit` | 把编译期折叠出来的"关闭下载"假 Loader 替换回真正的 `PCL.ModDownload::DlClientListLoader`,恢复 MC 版本列表下载 | | 3 | `PCL.PageDownloadModify.LoadInstanceFinished` | `CardMinecraft.Visibility` 由硬编码的 `Collapsed` 改回 `Visible` | | 4 | `PCL.ModModpack.ModpackInstall(String, String, String)` | 重建被编译器删除的整合包类型分发逻辑(CurseForge / HMCL / MMC / MCBBS / Modrinth / 带启动器压缩包 / 普通压缩包),新增 `ModpackInstallDispatch` 方法 | | 5 | `PCL.ModModpack.ModpackInstall()` | 重建文件选择对话框入口,选中整合包后调用 3 参数重载进行安装 | > 注:源码中 `PageDownloadCompDetail` 的相关检查在 2.99 的 exe 中不存在(该类未编译进去),无需处理;`FormMain` 拖放处理中的限制分支被折叠为 `False`,本身无害。 ## 使用 [code] - 第一个参数:官方下载的原版 `Plain Craft Launcher 2.exe` - 第二个参数:输出的补丁版 exe - 生成后可直接替换原文件运行 **本仓库不提供、也不分发任何 PCL2 的二进制文件(无论原版还是补丁版)。** 请自行从官方渠道获取 PCL2 后用本工具打补丁。 ## 构建 需要 Windows + .NET Framework 4.x 自带的 `csc.exe`(系统自带,无需安装 SDK),以及 dnlib 的 `net45` 版 `dnlib.dll` 放在仓库根目录。 [code] `build.cmd` 会编译 `src\patch.cs` 并输出 `patch.exe`。 ## 免责声明 - 本工具仅供学习与研究,请支持原作者。 - 对使用补丁版本产生的一切后果由使用者自行承担。 - PCL2 版本更新后偏移和方法可能变化,本工具基于 **2.99.0.0** 编写并验证,其他版本不保证可用。 ## License MIT