diff options
Diffstat (limited to 'packages/docs/content/zh/features')
| -rw-r--r-- | packages/docs/content/zh/features/authentication.mdx | 266 | ||||
| -rw-r--r-- | packages/docs/content/zh/features/index.mdx | 176 | ||||
| -rw-r--r-- | packages/docs/content/zh/features/java.mdx | 394 | ||||
| -rw-r--r-- | packages/docs/content/zh/features/meta.json | 9 | ||||
| -rw-r--r-- | packages/docs/content/zh/features/mod-loaders.mdx | 409 |
5 files changed, 0 insertions, 1254 deletions
diff --git a/packages/docs/content/zh/features/authentication.mdx b/packages/docs/content/zh/features/authentication.mdx deleted file mode 100644 index e83cc35..0000000 --- a/packages/docs/content/zh/features/authentication.mdx +++ /dev/null @@ -1,266 +0,0 @@ ---- -title: 身份验证 -description: DropOut 中的 Microsoft OAuth 和离线身份验证 ---- - -# 身份验证 - -DropOut 支持两种身份验证方法:Microsoft 账户(用于官方 Minecraft)和离线模式(用于测试和离线游玩)。 - -## Microsoft 身份验证 - -### 概述 - -DropOut 使用 **Device Code Flow** 进行 Microsoft 身份验证,具有以下特点: -- 无需重定向 URL(无需浏览器集成) -- 适用于任何拥有浏览器的设备 -- 提供简单的基于代码的身份验证 -- 完全符合 Microsoft OAuth 2.0 标准 - -### 身份验证流程 - -身份验证链包含多个步骤: - -1. **Device Code** → 用户授权 -2. **MS Token** → 访问令牌 + 刷新令牌 -3. **Xbox Live** → Xbox 令牌 + UHS -4. **XSTS** → 安全令牌 -5. **Minecraft** → 游戏访问令牌 -6. **Profile** → 用户名 + UUID - -#### 第 1 步:设备代码请求 -1. 单击"使用 Microsoft 登录" -2. DropOut 从 Microsoft 请求设备代码 -3. 您会收到: - - 用户代码(例如 `A1B2-C3D4`) - - 验证 URL(通常为 `https://microsoft.com/link`) - - 设备代码(内部使用) - -#### 第 2 步:用户授权 -1. 在任何浏览器中访问验证 URL -2. 输入用户代码 -3. 使用 Microsoft 账户登录 -4. 授权 DropOut 访问您的 Minecraft 个人资料 - -#### 第 3 步:令牌交换 -- DropOut 轮询 Microsoft 检查授权完成 -- 授权后接收访问令牌和刷新令牌 -- 刷新令牌被存储以备将来登录使用 - -#### 第 4 步:Xbox Live 身份验证 -- Microsoft 令牌被交换为 Xbox Live 令牌 -- 检索用户哈希 (UHS) 用于下一步 - -#### 第 5 步:XSTS 授权 -- Xbox Live 令牌被用来获取 XSTS 令牌 -- 此令牌特定于 Minecraft 服务 - -#### 第 6 步:Minecraft 登录 -- XSTS 令牌被交换为 Minecraft 访问令牌 -- 使用端点:`/launcher/login` - -#### 第 7 步:个人资料获取 -- 检索您的 Minecraft 用户名 -- 获取您的 UUID -- 检查您是否拥有 Minecraft - -### 令牌管理 - -**访问令牌:** -- 短期有效(通常为 1 小时) -- 用于游戏身份验证 -- 过期时自动刷新 - -**刷新令牌:** -- 长期有效(通常为 90 天) -- 安全存储在 `accounts.json` 中 -- 用于获取新的访问令牌 - -**自动刷新:** -```rust -// Automatic refresh when token expires -if account.expires_at < current_time { - refresh_full_auth(&account).await?; -} -``` - -### 安全考虑 - -- 令牌存储在平台特定的应用数据目录中 -- 所有 API 调用仅使用 HTTPS -- 不存储凭据(仅存储令牌) -- 需要 User-Agent 标头(绕过 MS WAF) - -### Microsoft 登录故障排除 - -**"Device code expired"(设备代码已过期)** -- 代码在 15 分钟后过期 -- 重新开始登录流程 - -**"Authorization pending"(授权待处理)** -- 在等待阶段很正常 -- 在浏览器中完成授权 - -**"Invalid token"(无效令牌)** -- 令牌可能已过期 -- 登出后重新登录 - -**"You don't own Minecraft"(您不拥有 Minecraft)** -- 验证您的 Microsoft 账户拥有 Minecraft Java Edition -- 在 https://www.minecraft.net/profile 检查 - -## 离线身份验证 - -### 概述 - -离线模式创建一个不需要互联网连接或 Microsoft 账户的本地账户。这对以下情况很有用: -- 测试和开发 -- 无网络游玩 -- LAN 多人游戏 -- Mod 开发 - -### 创建离线账户 - -1. 在登录屏幕单击"离线模式" -2. 输入用户名(3-16 个字符) -3. 单击"创建账户" - -### 工作原理 - -**UUID 生成:** -```rust -// Deterministic UUID v3 from username -let uuid = generate_offline_uuid(&username); -``` - -- 使用 UUID v3(基于命名空间) -- 确定性:相同的用户名 = 相同的 UUID -- 无需网络请求 - -**身份验证:** -- 返回 `"null"` 作为访问令牌 -- Minecraft 在离线模式下接受空令牌 -- 用户名和 UUID 本地存储 - -### 限制 - -- 无法加入在线服务器 -- 不支持皮肤 -- 不支持披风 -- 无法使用 Microsoft 账户功能 - -### 用例 - -**开发:** -```bash -# Testing mod development -cargo tauri dev -# Use offline mode to test quickly -``` - -**LAN 游玩:** -- 无需身份验证即可加入 LAN 世界 -- 托管 LAN 世界 - -**离线游玩:** -- 单人游戏无需网络 -- 无需身份验证 - -## 账户管理 - -### 切换账户 - -目前 DropOut 一次只支持一个活跃账户。多账户支持正在规划中。 - -**切换账户的步骤:** -1. 登出当前账户 -2. 使用新账户登录 - -### 账户存储 - -账户存储在 `accounts.json` 中: - -```json -{ - "current_account_id": "uuid-here", - "accounts": [ - { - "id": "uuid", - "type": "Microsoft", - "username": "PlayerName", - "access_token": "...", - "refresh_token": "...", - "expires_at": 1234567890 - } - ] -} -``` - -### 删除账户 - -删除账户的步骤: -1. 打开设置 -2. 导航到账户 -3. 单击"登出" -4. 或手动删除 `accounts.json` - -## API 参考 - -### Tauri 命令 - -**启动 Microsoft 登录:** -```typescript -const { user_code, verification_uri } = await invoke('start_microsoft_login'); -``` - -**完成 Microsoft 登录:** -```typescript -const account = await invoke('complete_microsoft_login', { deviceCode }); -``` - -**离线登录:** -```typescript -const account = await invoke('offline_login', { username: 'Player' }); -``` - -**登出:** -```typescript -await invoke('logout'); -``` - -**获取当前账户:** -```typescript -const account = await invoke('get_current_account'); -``` - -### 事件 - -**身份验证状态:** -```typescript -listen('auth-status', (event) => { - console.log(event.payload); // "logged_in" | "logged_out" -}); -``` - -## 最佳实践 - -### 对于玩家 - -1. **对官方服务器使用 Microsoft 账户** -2. **保护令牌安全** - 不要分享 accounts.json -3. **定期刷新令牌** - 通过登录来刷新 -4. **仅在测试时使用离线模式** - -### 对于开发者 - -1. **优雅地处理令牌过期** -2. **为网络故障实现重试逻辑** -3. **缓存账户数据** 以减少 API 调用 -4. **在游戏启动前验证令牌** - -## 未来增强 - -- **多账户支持**:轻松在账户之间切换 -- **账户配置文件**:保存每个账户的设置 -- **自动登录**:记住最后一个账户 -- **令牌加密**:为存储的令牌增强安全性 diff --git a/packages/docs/content/zh/features/index.mdx b/packages/docs/content/zh/features/index.mdx deleted file mode 100644 index bb53ce2..0000000 --- a/packages/docs/content/zh/features/index.mdx +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: 功能概览 -description: DropOut 所有功能的综合指南 ---- - -# 功能概览 - -DropOut 功能丰富,既适合休闲玩家也适合高级用户。本指南涵盖所有主要功能。 - -## 核心功能 - -<Cards> - <Card - title="身份验证" - href="authentication" - description="Microsoft OAuth 和离线身份验证" - /> - <Card - title="Java 管理" - href="java" - description="Java 运行时的自动检测和安装" - /> - <Card - title="模组加载器" - href="mod-loaders" - description="Fabric 和 Forge 支持,轻松安装" - /> - <Card - title="实例" - href="instances" - description="具有独立配置的隔离游戏环境" - /> - <Card - title="下载" - href="downloads" - description="快速并发下载,支持断点续传" - /> - <Card - title="AI 助手" - href="assistant" - description="内置 AI 助手用于故障排除和指导" - /> -</Cards> - -## 快速功能矩阵 - -| 功能 | 状态 | 描述 | -|---------|--------|-------------| -| Microsoft 身份验证 | 完成 | 使用设备代码流的 OAuth 2.0 | -| 离线身份验证 | 完成 | 用于离线游玩的本地账户 | -| 令牌自动刷新 | 完成 | 自动刷新过期的令牌 | -| Java 自动检测 | 完成 | 扫描系统中的 Java 安装 | -| Java 下载 | 完成 | 下载 Adoptium JDK/JRE 版本 | -| Fabric 支持 | 完成 | 安装和启动 Fabric 加载器 | -| Forge 支持 | 完成 | 安装和启动 Forge 加载器 | -| 实例系统 | 完成 | 隔离的游戏环境 | -| GitHub 集成 | 完成 | 查看发布和更新日志 | -| 并发下载 | 完成 | 多线程资源下载 | -| 断点续传 | 完成 | 恢复中断的下载 | -| AI 助手 | 完成 | 内置故障排除助手 | -| 配置编辑器 | 完成 | JSON/TOML 配置编辑器 | -| 自定义分辨率 | 完成 | 设置游戏窗口尺寸 | -| 内存分配 | 完成 | 自定义 JVM 内存设置 | -| 多账户 | 进行中 | 在多个账户之间切换 | -| 模组管理器 | 计划中 | 在启动器中启用/禁用模组 | -| 启动器自动更新 | 计划中 | 自我更新机制 | -| 自定义游戏目录 | 计划中 | 选择游戏文件位置 | -| 导入配置文件 | 计划中 | 从 MultiMC/Prism 导入 | - -## 性能功能 - -### 并发下载 -- 可配置的线程数(默认:10) -- 并行资源和库下载 -- 每个文件的进度跟踪 -- ETA 计算 - -### 断点续传支持 -- 中断的下载自动恢复 -- `.part` 文件跟踪进度 -- 大文件的多段下载 -- 用于状态跟踪的元数据文件 - -### 缓存 -- Java 目录缓存 24 小时 -- 本地缓存版本清单 -- 资源索引缓存 -- 库去重 - -## 用户界面功能 - -### 现代设计 -- 强制暗色模式保护眼睛 -- 粒子背景效果 -- 简洁、无干扰的布局 -- 响应式设计 - -### 实时反馈 -- 实时下载进度 -- 游戏控制台输出 -- 日志流 -- Toast 通知 - -### 设置管理 -- 内存分配滑块 -- 分辨率自定义 -- Java 路径选择 -- 线程数配置 -- 自定义 JVM 参数 - -## 高级功能 - -### 版本继承 -模组版本(Fabric/Forge)自动从父原版版本继承: -- 从父版本 + 模组加载器合并库 -- 组合并去重参数 -- 从原版版本继承资源 - -### 原生库提取 -- 特定平台的原生提取 -- 自动清理 -- 正确的库路径配置 - -### 规则引擎 -- 特定操作系统的库过滤 -- 功能标志支持 -- 架构检测 - -### 下载队列持久化 -- 保存未完成的下载 -- 启动器重启后恢复 -- 队列优先级管理 - -## 开发者功能 - -### 配置编辑器 -内置 JSON/TOML 编辑器,具有: -- 语法高亮 -- 验证 -- 快速访问所有配置 - -### 日志访问 -- 实时游戏日志 -- 启动器调试日志 -- 复制/导出功能 - -### AI 助手 -- 故障排除指导 -- 错误分析 -- 配置帮助 -- 文档搜索 - -## 即将推出 - -### 多账户管理 -- 轻松切换账户 -- 账户配置文件 -- 快速切换 - -### 模组管理器 -- 浏览和安装模组 -- 启用/禁用模组 -- 模组兼容性检查 -- 版本管理 - -### 配置文件导入 -- 从 MultiMC 导入 -- 从 Prism Launcher 导入 -- 从其他启动器导入 -- 保留设置和存档 - -### 启动器自动更新 -- 后台更新检查 -- 一键更新 -- 版本历史 -- 回滚支持 diff --git a/packages/docs/content/zh/features/java.mdx b/packages/docs/content/zh/features/java.mdx deleted file mode 100644 index bdc3c15..0000000 --- a/packages/docs/content/zh/features/java.mdx +++ /dev/null @@ -1,394 +0,0 @@ ---- -title: Java 管理 -description: 自动 Java 检测、下载和安装 ---- - -# Java 管理 - -DropOut 提供全面的 Java 管理,自动检测已安装的版本并根据需要下载新版本。 - -## 自动检测 - -### 系统扫描 - -DropOut 扫描多个位置查找 Java 安装: - -**Linux:** -- `/usr/lib/jvm/` -- `/usr/java/` -- `$JAVA_HOME` -- `PATH` 环境变量 - -**macOS:** -- `/Library/Java/JavaVirtualMachines/` -- `/System/Library/Java/JavaVirtualMachines/` -- `$JAVA_HOME` -- `PATH` 环境变量 - -**Windows:** -- `C:\Program Files\Java\` -- `C:\Program Files (x86)\Java\` -- `%JAVA_HOME%` -- `PATH` 环境变量 -- Windows 注册表 - -### 版本检测 - -对于找到的每个 Java 安装,DropOut 会: -1. 运行 `java -version` 获取版本信息 -2. 解析主要版本(8、11、17、21 等) -3. 检测架构(x64、ARM64) -4. 识别供应商(Oracle、Adoptium 等) - -### 结果 - -所有检测到的 Java 安装都显示在设置 → Java 中: -- 版本号 -- 安装路径 -- 架构 -- 当前选择状态 - -## Java 下载 - -### Adoptium 集成 - -DropOut 集成了 Eclipse Adoptium API 以下载高质量的免费 JDK/JRE 构建版本。 - -**支持的版本:** -- Java 8(LTS) -- Java 11(LTS) -- Java 17(LTS) -- Java 21(LTS) -- Java 23+(最新版) - -**功能:** -- 自动平台检测 -- 特定架构的构建版本 -- JDK 或 JRE 选择 -- 校验和验证 - -### 下载过程 - -1. 导航到设置 → Java -2. 点击"下载 Java" -3. 选择版本(例如 Java 17) -4. 选择 JDK 或 JRE -5. 点击下载 -6. 等待下载和解压 - -**进度跟踪:** -- 实时下载速度 -- ETA 计算 -- 解压进度 -- 安装确认 - -### 目录管理 - -Java 目录缓存 24 小时以提高性能: - -```rust -// 目录结构 -{ - "versions": [ - { - "version": "17.0.9+9", - "major": 17, - "url": "https://api.adoptium.net/...", - "sha256": "...", - "size": 123456789 - } - ], - "last_updated": 1234567890 -} -``` - -**刷新:** -- 24 小时后自动刷新 -- 设置中手动刷新 -- 下载失败时强制刷新 - -## 安装 - -### 下载目录 - -下载的 Java 运行时安装到: - -``` -~/.local/share/com.dropout.launcher/java/ (Linux) -~/Library/Application Support/com.dropout.launcher/java/ (macOS) -%APPDATA%/com.dropout.launcher/java/ (Windows) -``` - -### 目录结构 - -``` -java/ -├── jdk-17.0.9+9/ -│ ├── bin/ -│ │ └── java (或 java.exe) -│ └── lib/ -├── jdk-21.0.1+12/ -│ ├── bin/ -│ └── lib/ -└── download_queue.json -``` - -### 解压 - -1. 下载到 `.part` 文件 -2. 验证校验和 -3. 解压存档: - - Linux/macOS 上的 `.tar.gz` - - Windows 上的 `.zip` -4. 移动到 `java/<version>/` 目录 -5. 设置可执行权限(Unix) - -## 配置 - -### 内存分配 - -在设置中配置 JVM 内存: - -**最小内存:** -- 默认:1024 MB -- 推荐:原版 2048 MB -- 推荐:模组 4096+ MB - -**最大内存:** -- 默认:4096 MB -- 根据系统 RAM 调整 -- 为操作系统和其他应用留出 4GB - -**格式:** -```bash --Xms1024M -Xmx4096M -``` - -### 自定义 JVM 参数 - -为高级配置添加自定义 JVM 参数: - -**常用参数:** -```bash -# 垃圾回收 --XX:+UseG1GC --XX:+UnlockExperimentalVMOptions - -# 性能 --XX:G1NewSizePercent=20 --XX:G1ReservePercent=20 --XX:MaxGCPauseMillis=50 - -# 内存 --XX:G1HeapRegionSize=32M -``` - -### Java 路径选择 - -**自动选择:** -- DropOut 为每个 Minecraft 版本推荐最佳 Java 版本 -- Java 8 用于 Minecraft 1.12.2 及更早版本 -- Java 17 用于 Minecraft 1.18-1.20.4 -- Java 21 用于 Minecraft 1.20.5+ - -**手动选择:** -1. 前往设置 → Java -2. 从检测到的安装中选择 -3. 或指定自定义路径 - -## 版本推荐 - -### Minecraft 版本 → Java 版本 - -| Minecraft 版本 | 推荐 Java | 最低 Java | -|-------------------|------------------|--------------| -| 1.7.10 及更早 | Java 8 | Java 8 | -| 1.8 - 1.12.2 | Java 8 | Java 8 | -| 1.13 - 1.16.5 | Java 8 或 11 | Java 8 | -| 1.17 - 1.17.1 | Java 16 | Java 16 | -| 1.18 - 1.20.4 | Java 17 | Java 17 | -| 1.20.5+ | Java 21 | Java 21 | - -### 模组 Minecraft - -**Fabric:** -- 通常与原版要求匹配 -- 一些模组可能需要更新的 Java - -**Forge:** -- 可能需要特定的 Java 版本 -- 检查模组加载器文档 -- 通常需要完全匹配版本 - -## 故障排除 - -### 未检测到 Java - -**问题:** 已安装的 Java 未显示 - -**解决方案:** -1. 验证 Java 在标准位置 -2. 检查 `JAVA_HOME` 环境变量 -3. 将 Java `bin` 目录添加到 `PATH` -4. 重启 DropOut -5. 手动选择路径 - -### 下载失败 - -**问题:** Java 下载未完成 - -**解决方案:** -1. 检查互联网连接 -2. 验证磁盘空间 -3. 尝试不同版本 -4. 清除下载队列 -5. 从 Adoptium 手动下载 - -### Java 版本错误 - -**问题:** 由于 Java 版本导致游戏崩溃 - -**解决方案:** -1. 检查 Minecraft 版本要求 -2. 下载正确的 Java 版本 -3. 在设置中选择适当的 Java -4. 验证 Java 路径正确 - -### 内存不足错误 - -**问题:** 游戏因内存错误崩溃 - -**解决方案:** -1. 增加最大内存分配 -2. 关闭其他应用程序 -3. 升级系统 RAM -4. 使用 64 位 Java -5. 优化 JVM 参数 - -### 性能问题 - -**问题:** 低 FPS 或卡顿 - -**解决方案:** -1. 调整内存分配(不要太高!) -2. 启用 G1GC 垃圾收集器 -3. 添加性能 JVM 参数 -4. 如兼容使用更新的 Java 版本 -5. 为整合包分配 4-8GB - -## API 参考 - -### Tauri 命令 - -**检测 Java 安装:** -```typescript -const javas = await invoke('detect_java_installations'); -// 返回: Array<{ path: string, version: string, major: number }> -``` - -**获取 Java 目录:** -```typescript -const catalog = await invoke('get_java_catalog'); -// 返回: { versions: Array<JavaVersion>, last_updated: number } -``` - -**下载 Java:** -```typescript -await invoke('download_java', { - version: '17.0.9+9', - variant: 'jdk' // 或 'jre' -}); -``` - -**取消 Java 下载:** -```typescript -await invoke('cancel_java_download'); -``` - -**设置 Java 路径:** -```typescript -await invoke('set_java_path', { path: '/path/to/java' }); -``` - -### 事件 - -**下载进度:** -```typescript -listen('java-download-progress', (event) => { - const { percent, speed, eta } = event.payload; -}); -``` - -**下载完成:** -```typescript -listen('java-download-complete', (event) => { - const { path, version } = event.payload; -}); -``` - -## 最佳实践 - -### 对于玩家 - -1. **使用 Adoptium 构建版本** - 免费、高质量、维护良好 -2. **Java 与 Minecraft 版本匹配** - 检查版本要求 -3. **不要过度分配内存** - 为操作系统留出 RAM -4. **保持 Java 更新** - 安全性和性能 -5. **使用 64 位 Java** - 大内存所需 - -### 对于开发者 - -1. **测试多个 Java 版本** - 确保兼容性 -2. **记录 Java 要求** - 帮助用户 -3. **处理缺少的 Java** - 优雅的后备方案 -4. **启动前验证 Java 路径** -5. **提供清晰的错误** - 当 Java 错误时 - -## 高级主题 - -### 自定义 Java 安装 - -使用自定义 Java 安装: - -1. 手动安装 Java -2. 记录安装路径 -3. 在 DropOut 设置 → Java 中 -4. 点击"自定义路径" -5. 浏览到 Java 可执行文件 -6. 验证版本正确 - -### 服务器用 Java - -运行 Minecraft 服务器时: - -```bash -# 推荐的服务器 JVM 参数 --Xms4G -Xmx4G \ --XX:+UseG1GC \ --XX:+ParallelRefProcEnabled \ --XX:MaxGCPauseMillis=200 \ --XX:+UnlockExperimentalVMOptions \ --XX:+DisableExplicitGC \ --XX:G1NewSizePercent=30 \ --XX:G1MaxNewSizePercent=40 \ --XX:G1HeapRegionSize=8M \ --XX:G1ReservePercent=20 \ --XX:G1HeapWastePercent=5 \ --XX:G1MixedGCCountTarget=4 \ --XX:InitiatingHeapOccupancyPercent=15 \ --XX:G1MixedGCLiveThresholdPercent=90 \ --XX:G1RSetUpdatingPauseTimePercent=5 \ --XX:SurvivorRatio=32 \ --XX:+PerfDisableSharedMem \ --XX:MaxTenuringThreshold=1 -``` - -### GraalVM - -GraalVM 支持高级用户: - -1. 从 graalvm.org 下载 GraalVM -2. 手动安装 -3. 作为自定义 Java 添加到 DropOut -4. 可能提高性能 -5. 使用前彻底测试 diff --git a/packages/docs/content/zh/features/meta.json b/packages/docs/content/zh/features/meta.json deleted file mode 100644 index 2fb2ded..0000000 --- a/packages/docs/content/zh/features/meta.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "title": "功能特性", - "pages": [ - "index", - "authentication", - "java", - "mod-loaders" - ] -} diff --git a/packages/docs/content/zh/features/mod-loaders.mdx b/packages/docs/content/zh/features/mod-loaders.mdx deleted file mode 100644 index 3687230..0000000 --- a/packages/docs/content/zh/features/mod-loaders.mdx +++ /dev/null @@ -1,409 +0,0 @@ ---- -title: 模组加载器 -description: Fabric 和 Forge 安装和管理 ---- - -# 模组加载器 - -DropOut 支持两个最流行的 Minecraft 模组加载器:Fabric 和 Forge。两者都可以直接从启动器中轻松安装和管理。 - -## Fabric 支持 - -### 概述 - -Fabric 是一个轻量级、模块化的模组工具链,专注于: -- 快速更新至新的 Minecraft 版本 -- 干净、极简的 API -- 强大的开发者社区 -- 优异的性能 - -### 安装 - -1. 导航至 **Versions** 选项卡 -2. 点击 **"Install Fabric"** -3. 选择 Minecraft 版本 -4. 选择 Fabric 加载器版本 -5. 点击 **"Install"** -6. 等待安装完成 - -### 工作原理 - -**Meta API 集成:** -```rust -// Fetch available Fabric versions -let url = format!( - "https://meta.fabricmc.net/v2/versions/loader/{}", - minecraft_version -); -``` - -**配置文件生成:** -1. 获取 Fabric 加载器元数据 -2. 下载 Fabric 库 -3. 使用 `inheritsFrom` 生成版本 JSON -4. 与父级 Minecraft 版本合并 -5. 添加至版本列表 - -**版本格式:** -```json -{ - "id": "fabric-loader-0.15.0-1.20.4", - "inheritsFrom": "1.20.4", - "mainClass": "net.fabricmc.loader.impl.launch.knot.KnotClient", - "libraries": [...] -} -``` - -### Fabric 版本 - -**加载器版本:** -- 最新稳定版(推荐) -- 用于兼容性的特定版本 -- Beta/快照版本 - -**游戏版本:** -- 所有 1.14+ 的 Minecraft 版本 -- 支持快照版本 -- 支持战斗测试版本 - -### 库管理 - -Fabric 库从 Maven 解析: - -**主库:** -``` -net.fabricmc:fabric-loader:0.15.0 -``` - -**依赖项:** -- `net.fabricmc:tiny-mappings-parser` -- `net.fabricmc:sponge-mixin` -- `net.fabricmc:access-widener` - -**下载:** -```rust -// Maven resolution -let url = format!( - "https://maven.fabricmc.net/{}/{}", - artifact_path, filename -); -``` - -### Fabric API - -Fabric Loader ≠ Fabric API: -- **Fabric Loader**: 模组加载器(由 DropOut 安装) -- **Fabric API**: 库模组(单独下载) - -许多模组需要 Fabric API: -1. 从 [Modrinth](https://modrinth.com/mod/fabric-api) 或 [CurseForge](https://www.curseforge.com/minecraft/mc-mods/fabric-api) 下载 -2. 放置在实例的 `mods/` 文件夹中 - -## Forge 支持 - -### 概述 - -Forge 是原始的、最流行的 Minecraft 模组加载器: -- 广泛的模组生态系统 -- 成熟的 API -- 广泛的版本支持 -- 庞大的社区 - -### 安装 - -1. 导航至 **Versions** 选项卡 -2. 点击 **"Install Forge"** -3. 选择 Minecraft 版本 -4. 选择 Forge 版本 -5. 点击 **"Install"** -6. 等待安装程序运行 -7. 安装完成 - -### 工作原理 - -**Forge 安装程序:** -```rust -// Download Forge installer -let installer_url = format!( - "https://maven.minecraftforge.net/net/minecraftforge/forge/{}/forge-{}-installer.jar", - full_version, full_version -); - -// Run installer -java -jar forge-installer.jar --installClient -``` - -**配置文件解析:** -1. Forge 安装程序创建版本 JSON -2. DropOut 解析安装配置文件 -3. 提取库依赖项 -4. 处理处理器(如果有) -5. 生成启动器配置文件 - -**版本格式:** -```json -{ - "id": "1.20.4-forge-49.0.26", - "inheritsFrom": "1.20.4", - "mainClass": "cpw.mods.bootstraplauncher.BootstrapLauncher", - "libraries": [...] -} -``` - -### Forge 版本 - -**发布类型:** -- **Latest**: 最新的稳定版本 -- **Recommended**: 生产环境中最稳定的版本 -- **Specific**: 版本锁定以确保兼容性 - -**Minecraft 版本支持:** -- 旧版本 (1.6.4+) -- 现代版本 (1.13+) -- 最新版本 (1.20+) - -### 库管理 - -Forge 有许多库: - -**核心库:** -- `net.minecraftforge:forge:<version>` -- `net.minecraftforge:fmlloader:<version>` -- `org.ow2.asm:asm:<version>` - -**解析:** -```rust -// Forge Maven -"https://maven.minecraftforge.net/" - -// Dependencies may use: -// - Maven Central -// - Minecraft Libraries -``` - -### Forge 处理器 - -某些 Forge 版本在安装期间运行"处理器": -- 字节码操纵 -- 库修补 -- 映射生成 - -DropOut 自动处理这些操作。 - -## 版本继承 - -Fabric 和 Forge 都使用 Minecraft 的继承系统: - -### 父版本 - -```json -{ - "id": "fabric-loader-0.15.0-1.20.4", - "inheritsFrom": "1.20.4" // Parent vanilla version -} -``` - -### 合并过程 - -**库:** -```rust -// Merged from both -parent_libraries + modded_libraries -// Duplicates removed -``` - -**参数:** -```rust -// Combined -parent_jvm_args + modded_jvm_args -parent_game_args + modded_game_args -``` - -**资源:** -```rust -// Inherited from parent -assets = parent.assets -``` - -**主类:** -```rust -// Overridden by modded -main_class = modded.mainClass -``` - -## 对比 - -| 功能 | Fabric | Forge | -|---------|--------|-------| -| **性能** | 优异 | 良好 | -| **更新速度** | 非常快 | 中等 | -| **模组选择** | 增长中 | 广泛 | -| **API 简洁性** | 简洁 | 复杂 | -| **版本支持** | 1.14+ | 1.6.4+ | -| **开发者友好** | 非常友好 | 中等 | -| **稳定性** | 优异 | 优异 | - -## 安装模组 - -### Fabric 模组 - -1. 创建/选择实例 -2. 确保 Fabric 已安装 -3. 从以下位置下载模组: - - [Modrinth](https://modrinth.com/) - - [CurseForge](https://www.curseforge.com/) - - [GitHub Releases](https://github.com/) -4. 将 `.jar` 文件放置在 `instances/<name>/mods/` -5. 启动游戏 - -**兼容性:** -- 检查 Minecraft 版本 -- 检查 Fabric Loader 版本 -- 检查 Fabric API 需求 -- 阅读模组依赖项 - -### Forge 模组 - -1. 创建/选择实例 -2. 确保 Forge 已安装 -3. 从以下位置下载模组: - - [CurseForge](https://www.curseforge.com/) - - [Modrinth](https://modrinth.com/) -4. 将 `.jar` 文件放置在 `instances/<name>/mods/` -5. 启动游戏 - -**兼容性:** -- 精确检查 Minecraft 版本 -- 检查 Forge 版本范围 -- 阅读模组依赖项 -- 检查冲突 - -## 故障排除 - -### Fabric 问题 - -**"Fabric Loader not found"** -- 重新安装 Fabric -- 检查版本 JSON 是否存在 -- 验证库是否已下载 - -**"Mixin apply failed"** -- 模组不兼容 -- 删除冲突的模组 -- 更新 Fabric Loader - -**"Fabric API required"** -- 下载 Fabric API -- 匹配 Minecraft 版本 -- 放置在 mods 文件夹中 - -### Forge 问题 - -**"Forge installer failed"** -- 验证 Java 安装 -- 检查磁盘空间 -- 尝试旧版本的 Forge -- 检查日志获取详细信息 - -**"Missing dependencies"** -- 安装所需的模组 -- 检查模组版本兼容性 -- 仔细阅读错误消息 - -**"Class not found"** -- Forge 版本不匹配 -- 重新安装 Forge -- 验证库是否已下载 - -### 常见模组问题 - -**启动时崩溃:** -1. 检查崩溃报告 -2. 识别有问题的模组 -3. 删除或更新模组 -4. 使用最少的模组测试 -5. 逐步添加模组回来 - -**性能问题:** -1. 安装了太多模组 -2. 增加内存分配 -3. 安装性能模组: - - Fabric: Sodium, Lithium - - Forge: OptiFine, Magnesium -4. 删除资源密集型模组 - -## API 参考 - -### Tauri 命令 - -**安装 Fabric:** -```typescript -await invoke('install_fabric', { - minecraftVersion: '1.20.4', - loaderVersion: '0.15.0' -}); -``` - -**安装 Forge:** -```typescript -await invoke('install_forge', { - minecraftVersion: '1.20.4', - forgeVersion: '49.0.26' -}); -``` - -**列出 Fabric 版本:** -```typescript -const versions = await invoke('get_fabric_versions', { - minecraftVersion: '1.20.4' -}); -``` - -**列出 Forge 版本:** -```typescript -const versions = await invoke('get_forge_versions', { - minecraftVersion: '1.20.4' -}); -``` - -### 事件 - -**安装进度:** -```typescript -listen('mod-loader-progress', (event) => { - const { stage, percent } = event.payload; - // Stages: "downloading", "installing", "processing", "complete" -}); -``` - -## 最佳实践 - -### 对于玩家 - -1. **每个实例选择一个模组加载器** -2. **精确匹配版本** - Minecraft 和加载器 -3. **安装前阅读模组要求** -4. **循序渐进** - 逐步添加模组 -5. **备份世界** - 添加模组前备份 -6. **检查兼容性** 列表 -7. **谨慎更新** - 在单独的实例中测试 - -### 对于模组包创建者 - -1. **记录版本** - MC、加载器、所有模组 -2. **彻底测试** - 所有功能 -3. **列出依赖项** - 包括 API -4. **提供更新日志** - 用于更新 -5. **版本锁定** - 为了稳定性 -6. **包含配置** - 预配置 -7. **测试更新** - 发布前测试 - -## 未来功能 - -- **模组浏览器** - 从启动器安装模组 -- **自动更新** - 保持模组最新 -- **依赖项解析** - 自动安装需求 -- **冲突检测** - 警告不兼容性 -- **配置文件导出** - 共享模组包配置 -- **CurseForge 集成** - 直接模组包导入 -- **Modrinth 集成** - 模组搜索和安装 |