Plain Craft Launcher 2.slnx 解决方案
Plain Craft Launcher 2/ WPF 主程序与功能集成
PCL.Core/ 配置、网络、账户、Minecraft 数据与主题
PCL.Core.SourceGenerators/ 配置 / 生命周期等源生成器
PCL.Core.Test/ 核心与定制功能测试
.github/workflows/ 当前仓库手动构建示例
docs/upstream/workflows/ 上游工作流归档,不执行为 Actions
Build.ps1 白名单公开配置的构建入口
public-build-config.json 公开配置示例
这是完整修改后的源码与资源快照,不是差分补丁。源码来源见根目录 SOURCE_ORIGIN.json。
| 文件 | 作用 |
|---|---|
主程序 Program.cs |
UI 入口与扫描工作进程 CLI 分流 |
Application.xaml / .xaml.cs |
应用资源、生命周期、独立启动 PNG |
FormMain.xaml / .xaml.cs |
主窗口与导航,基岩版页面编号为 13 |
Modules/ModMain.cs |
页面引用与共享逻辑 |
PCL.Core/App/Config.cs |
配置定义与源生成入口 |
metadata.json / .csproj |
产品信息与程序集兼容名称 |
公开页面编号不要随按钮顺序重排,顶部使用 Tag 匹配。原生事件签名必须准确:MyButton.Click 是 (object, MouseButtonEventArgs),MyIconButton.Click 是 (object, EventArgs)。公共配置键、序列化属性和 XAML 事件不能随意重命名。
PCL.Core/Minecraft/Bedrock/BedrockLibrary.cs:元数据与条目类型、SHA-256 版本库、有界清单解析、可取消导入、重复包去重、目录关联。导入不执行游戏,取消目录关联不删除游戏文件。
BedrockOnlineClient.cs:MCAPPX JSON、数字版本排序、渠道与架构、缓存、微软 FE3 SOAP、流式下载、MD5 和包信息核对。HttpClient 由主程序网络服务传入,也可由测试替身处理器提供。
Modules/Minecraft/ModBedrockService.cs:当前用户 Windows 包查询、精确 AUMID 激活、正常 Add-AppxPackage 安装。保留超时、输出上限、字面量路径和包读取锁。Shell 请求成功不等于游戏加载或登录成功。
Pages/PageBedrock/:原生左右页;.Online.cs 管理筛选、分页、缓存提示、进度及取消。可安装 APPX 与 GDK 加密归档是不同类型,不能给加密归档显示可直接安装 / 启动的按钮。
对应测试:BedrockLibraryTest、BedrockOnlineTest。
PCL.Core/Security/ModScan/:class 指令读取、静态信号、JAR / 嵌套归档和报告模型。
Modules/Security/ModScanHost.cs:受限工作进程、超时、结果与哈希缓存。
Pages/PageTools/PageToolsTest.ModScan.cs:百宝箱入口、文件选择 / 拖入、开关、取消和导出。
保持不执行 Mod、不访问样本 URL、不上传文件的边界。签名文件存在不等于验签;来源自报不等于可信来源。调整规则时更新引擎 / 缓存版本并复核超限与不完整报告。测试 ModSafetyScanTest 使用静态 class 样本,不运行 Java 类。
PCL.Core/Minecraft/ModHealth/DependencyHealth.cs 是纯依赖图逻辑;主程序 ModHealthService.cs 适配实例、约束、嵌套模组与缓存,Pages/PageInstance/ModHealthWindow.cs 展示图、详情和禁用影响。
Modules/Minecraft/ModLaunch.cs 在 Java / 参数和文件准备之后、游戏进程之前接入预检。数据残缺应降级,不猜测未知约束。实际启禁用继续使用原来的资源管理流程。
对应测试 DependencyHealthTest;行为与限制见 Mod-Health.md。
PCL.Core/UI/Theme/ThemePalette.cs、SnapshotThemeStyle.cs 与主题资源定义颜色和图案;Modules/UI/Theme/ThemeManager.cs 应用到动态 WPF 资源。页面复用 MyCard、MyButton、MyComboBox 等原生控件,避免写死前景 / 背景。
Images/icon.ico 是多尺寸 Windows 图标;icon.png 是通用品牌图;icon-startup.png 是独立 176 像素启动图;关于图在 Images/Heads/Logo-CE.png。调整启动画面不应缩小所有通用图标。
主题图案含快照资源适配结果,不能当作原创 Apache-2.0 素材重新授权,见 PUBLICATION.md。
已删除设置入口、功能隐藏选项、PageSetupUpdate 的 XAML / 代码及核心命令行替换服务。旧编号 SetupUpdate = 8 为兼容占位,路由回关于页。
UpdateManager 的兼容方法不再检查、下载或替换启动器。公告服务适配保留;整合包导出附带当前本地 EXE,而不是下载上游版本。自动更新配置保持禁用。没有影响 Minecraft、模组、Java 与其他资源的正常下载功能。
当前不启用混淆。原型混淆配置、目标及生成器均不属于这次源码交付。
变更说明写明行为、限制、来源与相关测试;保留版权和许可。不要把未实现的完整调用链分析、自动来源验证、GDK 解密安装写进介绍。定制缺陷在当前仓库处理,不把没有在上游复现的问题直接归给原项目。