# Server Config（服务端配置）

本节说明服务端配置文件 `config-server.dc` 的字段、用途、可填写值、默认值与回退规则。

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

## 目录
- 配置目录：`config/dlc_manager/`
- 文件名：`config-server.dc`

> 说明：本文件仅用于服务端配置。

## 完整示例
```dc
[server]
serverSupport = true
serverPort = 29690
serverPassword = ""
modpackUrl = ""
updateGithubRepo = ""
rconHost = ""
rconPort = 25575
rconPassword = ""

[ui]
isEnableAllButtonShown = true
isUpdateManagerOn = true
isSelfUpdateAutoCheckOn = true
isPresetFuncOn = true
WaitingTime = 0

[paths]
dlcRoot = "DLC"
taczRoot = "tacz"
resourcepackRoot = "resourcepacks"
datapackRoot = "datapacks"

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

---

## 字段说明

### `[server]`
#### `serverSupport`
- **用途**：是否启用服务端 DLC 管理通信功能。
- **可填**：布尔。
- **默认**：`true`。

#### `serverPort`
- **用途**：服务端 DLC 管理器通信端口。
- **可填**：整数，范围 `1~65535`。
- **默认**：`29690`。
- **回退规则**：超出范围回退默认值。

#### `serverPassword`
- **用途**：服务端 DLC 管理器连接密码（明文）。
- **可填**：字符串。
- **默认**：空字符串（不设置密码）。

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

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

#### `rconHost`
- **用途**：RCON 主机地址（用于服务器管理器的 RCON 功能）。
- **可填**：字符串。
- **默认**：空字符串。

#### `rconPort`
- **用途**：RCON 端口。
- **可填**：整数，范围 `1~65535`。
- **默认**：`25575`。
- **回退规则**：超出范围回退默认值。

#### `rconPassword`
- **用途**：RCON 密码（明文）。
- **可填**：字符串。
- **默认**：空字符串。

---

### `[ui]`（服务端管理器界面开关）
> 这些选项由服务端返回给客户端，用于控制“服务器管理器”界面显示。

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

#### `isUpdateManagerOn`
- **用途**：是否启用服务器更新管理器。
- **可填**：布尔。
- **默认**：`true`。

#### `isSelfUpdateAutoCheckOn`
- **用途**：是否允许自动检查 DLC 管理器更新。
- **可填**：布尔。
- **默认**：`true`。

#### `isPresetFuncOn`
- **用途**：是否启用预设功能。
- **可填**：布尔。
- **默认**：`true`。

#### `WaitingTime`
- **用途**：警告页勾选前等待时间（秒）。
- **可填**：整数 `0~10`。
- **默认**：`0`。

---

### `[paths]`
> 所有路径均以服务端整合包根目录为基准解析。

#### `dlcRoot`
- **用途**：DLC 根目录。
- **可填**：字符串（相对/绝对路径）。
- **默认**：`"DLC"`。

#### `taczRoot`
- **用途**：TACZ 资源目录。
- **可填**：字符串（相对/绝对路径）。
- **默认**：`"tacz"`。

#### `resourcepackRoot`
- **用途**：资源包目录。
- **可填**：字符串（相对/绝对路径）。
- **默认**：`"resourcepacks"`。

#### `datapackRoot`
- **用途**：数据包目录。
- **可填**：字符串（相对/绝对路径）。
- **默认**：`"datapacks"`。

---

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

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

#### `minSegmentMB`
- **用途**：每段下载最小大小（MB）。
- **可填**：整数。
- **默认**：`20`。

#### `maxRetryCount`
- **用途**：下载重试次数上限。
- **可填**：整数。
- **默认**：`5`。

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

#### `taskTimeoutSeconds`
- **用途**：下载任务超时（秒）。
- **可填**：整数。
- **默认**：`60`。

---

## 补充说明
- 配置键名大小写不敏感。
- 未填写字段会回退默认值。
- 修改 `serverPort` 后，客户端连接服务器管理器时需要使用同一端口。
