本次更新 (v0.0.12) 带来了模组管理系统的全面重构、全栈结构化错误处理机制的引入,并将默认下载源切换至 BMCLAPI 以大幅提升下载体验;同时我们精简了客户端职责,彻底移除了冗余的服务器发布功能,并修复了多项关于旧版游戏启动及环境安装的核心 Bug。
✨ 新特性与优化 (Features & Improvements)
🚀 核心架构与底层逻辑
- 全栈错误处理重构: 在 Rust 后端与 Vue 前端之间全面实现了结构化的错误处理 (Structured Error Handling) 机制,极大提升了错误提示的准确性与异常排查效率。
- 精简服务器发布功能: 为了聚焦启动器核心业务,彻底移除了客户端内的服务器发布功能(清除了相应的发布按钮、对话框以及未使用的后端 API 端点),进一步提升了软件的轻量化与安全性。
- 任务系统重塑: 引入了模块化的任务注册机制,并全面翻新了任务面板的 UI 显示效果,状态呈现更加直观现代。
- 下载源体验升级: 正式接入并默认应用 BMCLAPI 作为全局下载源,显著优化了 Forge 与 NeoForge 等依赖的安装速度与网络稳定性。
🧩 模组管理与解析
- 模组系统全面升级: 对游戏实例的模组管理逻辑与缓存机制进行了彻底重构 (Comprehensive Overhaul),大幅提升了加载效率与交互体验。
- 高容错 TOML 解析器: 针对部分格式不规范的 Forge
mods.toml文件,在 Rust 底层实现了一个具备强容错能力的降级解析器,完美支持自动剥离行尾注释并兼容多行字符串解析。
🐛 Bug 修复 (Bug Fixes)
🎮 游戏启动与环境安装
- 旧版本启动崩溃: 修复了由于底层游戏启动参数 (
Game Arguments) 位置拼接错误,导致 1.12.2 及更旧版本游戏在启动时发生崩溃的致命问题。 - 纯原生库 404 错误: 修复了在游戏依赖安装过程中,纯原生依赖库 (Native-only libraries) 由于解析逻辑缺陷导致请求出现 404 HTTP 错误的现象。
- Forge 环境检测: 优化了 Forge 模块的识别与拦截逻辑,移除了由于重复拼接导致的版本号前缀异常,提升了加载器环境识别的精准度。
🎨 界面展示与交互
- 取消任务的清理与展示: 修复了手动取消任务后在 UI 上的状态显示残留问题,并彻底完善了取消整合包安装时的底层文件及进程清理逻辑。
- 类型与样式修正: 解决了
InstanceModsModal组件中遗留的 TypeScript 编译报错,并清理了冗余的组件导入声明。
🛠️ 其他构建与杂项 (Chores & Maintenance)
- 开源协作增强: 为 GitHub 仓库正式新增了标准化的 Issue 模板,规范化社区反馈流程。
- 代码库规范: 补充了项目根目录的
.gitignore配置项,并在核心core模块代码审查中优化了共享客户端实例及异步配置选项。
What's Changed
- feat(task): UI revamp and modular task registration by @MaoZa in https://github.com/DawnLandTeam/dawnland-launcher/pull/45
- fix(server): enhance server publishing validation and error handling by @MaoZa in https://github.com/DawnLandTeam/dawnland-launcher/pull/46
- Refactor: remove server publishing functionality from launcher by @MaoZa in https://github.com/DawnLandTeam/dawnland-launcher/pull/49
- feat(server): externalize publish server module to web portal by @MaoZa in https://github.com/DawnLandTeam/dawnland-launcher/pull/50
- fix(core,ui): align server schema and progress rounding by @MaoZa in https://github.com/DawnLandTeam/dawnland-launcher/pull/51
Full Changelog: https://github.com/DawnLandTeam/dawnland-launcher/compare/v0.0.11...v0.0.12
此版本主要带来了大量新特性的支持(如 MCBBS 与 CurseForge 整合包的离线导入、实例继承、临时文件自动清理等),并对启动器底层逻辑、Java 引擎检测以及诸多边界错误进行了深入修复与体验优化。
✨ 新特性与优化 (Features & Improvements)
- 整合包支持加强: 全面新增对 MCBBS 格式以及 CurseForge 离线整合包的解析与导入支持。
- 依赖缓存与实例继承: 核心模块实现了依赖缓存系统与实例继承机制,有效减少磁盘占用并提升多实例的构建与启动效率。
- 临时文件自清理: 实现了智能的自清理机制,可自动清理运行与下载过程中产生的多余临时文件。
- Java 体验升级: 优化了 OpenJ9 的检测算法及版本排序逻辑,并在 Java 选择器中直接展示 JVM 引擎类型;同时为“缺失 Java”的错误弹窗增加了完整的多语言 (i18n) 支持。
- UI 与交互优化: 重构了崩溃报告模态框的布局并大幅增加了日志容量上限;新增了服务器状态的手动刷新按钮。
- 更新通道控制: 在设置页新增了版本更新通道配置,允许用户在稳定版 (Stable) 与预发布版 (Prerelease) 之间自由切换。
- 核心网络架构: 实现了 CurseForge CDN 的直接 API 密钥验证下载体系;并将数据分析服务 (Aptabase) 迁移至自建服务端点。
🐛 问题修复 (Bug Fixes)
- Forge 安装过滤: 修复了在构建 Forge 依赖树时,错误地包含了本地库及服务端专属 (
server-only) 库文件的问题。 - 基础实例处理: 修复了在关闭“实例继承”功能的情况下,系统无法正确解析并处理基础原版 (
vanilla) 实例的逻辑 Bug。 - 构建指令修正: 补充了针对环境密钥
APTABASE_KEY的cargo rerun指令,确保环境变量变更时能够正确触发重编译。 - API 安全性加固: 针对 CurseForge API 密钥的使用进行了底层架构层面的安全性加强与异常鲁棒性修复。
这个版本迎来了更新系统底层架构的史诗级重构,我们正式全面转向“单文件无感热更新”体系,同时修复了长期困扰部分用户的系统语言识别失效问题。
⚠️ 极其重要:更新须知 (Critical Update Notice)
🚨 旧版本过渡声明
- 必须手动更新本次版本:由于本次架构升级彻底更换了底层的更新引擎与打包格式(全面拥抱单文件独立运行版),如果您当前正在使用
v0.0.4及之前版本的启动器,内置的旧版更新器将无法自动为您升级。 - 平滑过渡指南:请您直接从本页面或官网手动下载最新的
DLML.exe(或 Linux 下的AppImage),并覆盖替换掉原来的旧版文件。完成这次手动替换后,您未来的所有升级都将享受全新的极速热更新体验!
🚀 核心架构升级 (Core Architecture Upgrades)
🔄 纯净的单文件热更新 (Standalone Hot-Update)
- 彻底抛弃官方重型更新器:我们成功剥离了原有的
Tauri Updater插件依赖包,大幅缩减了应用体积。现在的更新检查逻辑由极简的纯原生fetch与后端直连。 - 双端智能原生自替换:全面升级了底层的
update_launcher核心。无论是 Windows 还是 Linux,系统现在能够自动下载纯净单文件(exe或AppImage)并进行原位自我覆写自启,告别繁重的安装包与压缩包!
✨ 新特性与优化 (Features & Improvements)
🐧 Linux 原生体验增强 (Linux Native Experience)
- 底层权限自动提权:针对 Linux 的绿色版生态进行了深度适配。当新版
amd64.AppImage自动下载完毕后,系统将通过 Rust 标准库原生地赋予其0o755执行权限,保障热更后立刻顺滑自启。
🌍 国际化环境自适应 (Smart Internationalization)
- 穿透内核的语言探测:全面重构了首次启动时的语言探测逻辑。通过引入 Rust 原生的
sys-locale模块,我们彻底击穿了 Edge WebView2 的底层环境壁垒,现在能够百分百精准嗅探物理主机的真实语言环境,再也不会出现中文系统下默认英文的“自动设定失效”问题。
☁️ CI/CD 与后端瘦身 (CI/CD & API Optimization)
- 干脆利落的云端分发:去除了 GitHub Actions 中所有针对
.msi格式的打包、Python.zip压缩以及冗余的.sig签名流程。现在我们的持续集成与云端存储将只派发最纯净、轻量化的独立二进制文件,下载即玩。
Full Changelog: https://github.com/DawnLandTeam/dawnland-launcher/compare/v0.0.4...v0.0.5




