# Config（客户端配置）

本节说明客户端配置文件字段、用途、可填写值、默认值与回退规则，并提供完整示例。

`dc` 格式请先阅读：
- [开始使用](../Getting_Started)

## 位置
- 目录：`config/dlc_manager/`
- 文件：`config.dc`

## 完整示例
```dc
[paths]
dlcRoot = "DLC"
taczRoot = "tacz"
resourcepackRoot = "resourcepacks"
datapackRoot = "datapacks"

[ui]
isEnableAllButtonShown = true
isConfigButtonShown = false
isUButtomShown = true
isUpdateManagerOn = true
isSelfUpdateAutoCheckOn = true
isPresetFuncOn = true
ShowOnFirstRun = false
WaitingTime = 0
serverSupport = true
titleAnchor = "auto"
titleOffsetX = 0
titleOffsetY = 0
titleUpdateAnchor = "auto"
titleUpdateOffsetX = 0
titleUpdateOffsetY = 0
noticeDisplayMode = "manager_button"
noticeButtonAnchor = "bottom_right"
noticeButtonOffsetX = 0
noticeButtonOffsetY = 0
noticePanelAnchor = "top_left"
noticePanelOffsetX = 0
noticePanelOffsetY = 0
noticePanelWidth = 0
noticePanelHeight = 0
modpackUrl = ""
updateGithubRepo = ""

[downloads]
maxConcurrentDownloads = 5
maxSegmentsPerFile = 4
minSegmentMB = 20
maxRetryCount = 5
connectTimeoutSeconds = 10
taskTimeoutSeconds = 60
```

---

## 字段说明

#### `[paths].dlcRoot`
- **用途**：DLC 根目录。
- **可填**：相对路径或绝对路径。
- **默认**：`"DLC"`。

#### `[paths].taczRoot`
- **用途**：TACZ 资源目录名。
- **可填**：字符串。
- **默认**：`"tacz"`。

#### `[paths].resourcepackRoot`
- **用途**：资源包默认目标目录名。
- **可填**：字符串。
- **默认**：`"resourcepacks"`。

#### `[paths].datapackRoot`
- **用途**：数据包默认目标目录名。
- **可填**：字符串。
- **默认**：`"datapacks"`。

#### `[ui].isEnableAllButtonShown`
- **用途**：显示“全部开启/全部关闭”按钮。
- **可填**：布尔。
- **默认**：`true`。

#### `[ui].isConfigButtonShown`
- **用途**：显示配置按钮。
- **可填**：布尔。
- **默认**：`false`。

#### `[ui].isUButtomShown`
- **用途**：主菜单显示 `U` 按钮。
- **可填**：布尔。
- **默认**：`true`。

#### `[ui].isUpdateManagerOn`
- **用途**：启用更新管理器。
- **可填**：布尔。
- **默认**：`true`。

#### `[ui].isSelfUpdateAutoCheckOn`
- **用途**：自动检查 DLC Manager 更新。
- **可填**：布尔。
- **默认**：`true`。

#### `[ui].isPresetFuncOn`
- **用途**：启用预设功能。
- **可填**：布尔。
- **默认**：`true`。

#### `[ui].ShowOnFirstRun`
- **用途**：第一次启动游戏时自动打开 DLC 管理器。
- **可填**：布尔。
- **默认**：`false`。
- **行为**：首次弹出后写入 `DLC/ShownOnFirstRun` 标记。

#### `[ui].WaitingTime`
- **用途**：警告页最短等待时间。
- **可填**：整数 `0~10`（秒）。
- **默认**：`0`。

#### `[ui].serverSupport`
- **用途**：显示服务器管理入口（客户端侧）。
- **可填**：布尔。
- **默认**：`true`。

#### `[ui].titleAnchor`
- **用途**：主菜单 DLC 管理器按钮锚点。
- **可填**：
  - `auto`
  - `top_left`、`top`、`top_right`
  - `left`、`center`、`right`
  - `bottom_left`、`bottom`、`bottom_right`
- **默认**：`"auto"`。

#### `[ui].titleOffsetX`
- **用途**：主菜单 DLC 管理器按钮的水平偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].titleOffsetY`
- **用途**：主菜单 DLC 管理器按钮的垂直偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].titleUpdateAnchor`
- **用途**：主菜单更新按钮（`U`）的锚点。
- **可填**：`auto`、`top_left`、`top`、`top_right`、`left`、`center`、`right`、`bottom_left`、`bottom`、`bottom_right`。
- **默认**：`auto`。

#### `[ui].titleUpdateOffsetX`
- **用途**：主菜单更新按钮（`U`）的水平偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].titleUpdateOffsetY`
- **用途**：主菜单更新按钮（`U`）的垂直偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].noticeDisplayMode`
- **用途**：公告展示模式。
- **可填**：
  - `manager_button`
  - `main_menu_button`
  - `main_menu_panel`
- **默认**：`manager_button`。

#### `[ui].noticeButtonAnchor`
- **用途**：主菜单公告按钮的锚点。
- **可填**：`top_left`、`top`、`top_right`、`left`、`center`、`right`、`bottom_left`、`bottom`、`bottom_right`。
- **默认**：`bottom_right`。

#### `[ui].noticeButtonOffsetX`
- **用途**：主菜单公告按钮的水平偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].noticeButtonOffsetY`
- **用途**：主菜单公告按钮的垂直偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].noticePanelAnchor`
- **用途**：主菜单公告面板的锚点。
- **可填**：`top_left`、`top`、`top_right`、`left`、`center`、`right`、`bottom_left`、`bottom`、`bottom_right`。
- **默认**：`top_left`。

#### `[ui].noticePanelOffsetX`
- **用途**：主菜单公告面板的水平偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].noticePanelOffsetY`
- **用途**：主菜单公告面板的垂直偏移（像素）。
- **可填**：整数。
- **默认**：`0`。

#### `[ui].noticePanelWidth`
- **用途**：主菜单公告面板宽度。
- **可填**：整数（`0` 表示不显示）。
- **默认**：`0`。

#### `[ui].noticePanelHeight`
- **用途**：主菜单公告面板高度。
- **可填**：整数（`0` 表示不显示）。
- **默认**：`0`。

#### `[ui].modpackUrl`
- **用途**：整合包主页链接（用于整合包更新页跳转）。
- **可填**：URL 字符串。
- **默认**：空。

#### `[ui].updateGithubRepo`
- **用途**：整合包版本仓库地址（用于整合包更新检测）。
- **可填**：
  - 单个仓库 URL
  - 多个仓库 URL（逗号分隔，按顺序回退）
  - HTTPS/HTTP 仓库页链接、Release 页链接、或 SSH 形式（`git@host:owner/repo.git`）
- **支持平台**：
  - GitHub
  - GitLab（含自建实例）
  - Gitee
  - 其他带 API 回退探测的通用 Git 平台
- **默认**：空。

#### `[downloads].maxConcurrentDownloads`
- **用途**：最大并发下载任务数。
- **可填**：整数。
- **默认**：`5`。

#### `[downloads].maxSegmentsPerFile`
- **用途**：单文件最大分段数。
- **可填**：整数。
- **默认**：`4`。

#### `[downloads].minSegmentMB`
- **用途**：最小分段大小（MB）。
- **可填**：整数。
- **默认**：`20`。

#### `[downloads].maxRetryCount`
- **用途**：单段最大重试次数。
- **可填**：整数。
- **默认**：`5`。

#### `[downloads].connectTimeoutSeconds`
- **用途**：连接超时（秒）。
- **可填**：整数。
- **默认**：`10`。

#### `[downloads].taskTimeoutSeconds`
- **用途**：任务超时（秒）。
- **可填**：整数。
- **默认**：`60`。
