[MD]
### 新增功能
#### exclude-files 配置项
- 新增 `exclude-files` 配置字段,支持按文件名排除单个文件(如 `session.lock`)
- 默认排除 `session.lock`(Minecraft 服务器运行时的世界锁文件,无法复制且无需备份)
- 与 `exclude-dirs` 配合使用,覆盖目录和文件两级排除
### 修复
#### session.lock 文件锁定导致备份失败
#### 压缩步骤静默失败(Error 未捕获)
#### ZSTD 压缩时本地库未加载(UnsatisfiedLinkError)
### 改进
- 文件复制失败时记录警告日志并跳过,不再中断整个备份流程
- `plugin.yml` 和 `pom.xml` 描述更新,明确兼容 Purpur/Leaves
### 变更
#### 下线非 ZIP 压缩格式(仅保留 ZIP)
- **背景**:Java 版 zst / 7z / tar.gz 压缩在实际服务端(Purpur 26.2 等)存在兼容性问题,仅 ZIP 工作正常
- **变更内容**:
- `CompressorFactory` 仅返回 `ZipCompressor`,无论 `compression.type` 配置为何值(除 `none` 外)均按 ZIP 处理
- 删除 `ZstdCompressor`、`SevenZipCompressor`、`TarGzCompressor`、`CompressUtils` 四个类
- 移除 `commons-compress`、`zstd-jni`、`tukaani xz` 三项 Maven 依赖及对应 shade relocation / filter 配置
- `config.yml` 中 `compression.type` 默认值由 `zst` 改为 `zip`
- `KNOWN_EXTENSIONS` 与 `PREFERRED_ORDER` 仅保留 `zip`
- **体积优化**:jar 体积由约 3290 KB 降至约 991 KB(减少约 70%)
- **兼容性说明**:
- 已有的 `.zst` / `.7z` / `.tar.gz` 旧备份文件不会被识别(不出现在 `/backup list`,也无法还原),需手动删除
- 旧 config 中 `compression.type: "zst"` 等配置无需修改,会自动按 ZIP 处理,但建议改为 `zip` 避免误解
[/MD]