pack2server 是一个将 CurseForge Minecraft 模组整合包一键转换为可直接运行的服务器目录的工具。
- 🚀 一键转换 - 将 CurseForge 整合包快速转换为可运行的服务器
- ⚡ 高性能 - 利用 Java 21 虚拟线程,充分压榨多核 CPU,实现零阻塞操作
- 🔧 智能过滤 - 自动识别并过滤掉客户端专用模组,仅保留服务端所需模组
- 📦 完整支持 - 支持 Fabric、Forge、Quilt 等主流模组加载器
- 🌐 批量下载 - 并行下载模组文件,提高转换效率
- 🗃️ 配置保留 - 自动处理整合包中的配置文件和资源文件
- 下载 - 如果提供的是 URL,则先下载整合包
- 解压 - 解压整合包到临时目录
- 模组获取 - 根据
manifest.json批量下载所需模组 - 服务端过滤 - 检测并移除客户端专用模组
- 文件复制 - 复制配置文件和其他资源文件
- 加载器生成 - 自动生成对应的服务端加载器
- 清理 - 删除临时文件,完成转换
- Java 21 或更高版本
- 可访问 CurseForge API 的网络连接(用于下载模组)
- 对于某些模组,可能需要 CurseForge API 密钥
# 克隆项目
git clone https://github.com/fc6a1b03/pack2server.git
cd pack2server
# 构建项目
./gradlew build
# 运行
java -jar build/libs/pack2server-*.jar前往 Releases 页面下载最新版本。
# 通过 URL 转换整合包
java -jar pack2server-*.jar convert -u '整合包下载链接' -o './server'
# 通过本地文件转换整合包
java -jar pack2server-*.jar convert -z '本地整合包路径' -o './server'
# 强制覆盖已有目录
java -jar pack2server-*.jar convert -u '整合包下载链接' -o './server' -f
# 提供 CurseForge API 密钥
java -jar pack2server-*.jar convert -u '整合包下载链接' -k '你的API密钥' -o './server'
# 或使用环境变量
CF_API_KEY='你的API密钥' java -jar pack2server-*.jar convert -u '整合包下载链接' -o './server'转换完成后,进入输出目录并运行生成的启动脚本:
cd server
java -jar fabric-server.jar --nogui| 参数 | 简写 | 描述 |
|---|---|---|
--url |
-u |
CurseForge 整合包下载链接 |
--zip |
-z |
本地 CurseForge 整合包路径 |
--output |
-o |
输出服务器目录(默认:./server) |
--force |
-f |
覆盖现有目录 |
--key |
-k |
CurseForge API 密钥(支持 env:CF_API_KEY) |
注:
--url和--zip必须二选一提供
- Java 21
- Gradle 9.0
- Hutool - Java 工具库
- Picocli - 命令行解析器
- Apache Commons Compress - 压缩文件处理
pack2server/
├── src/
│ ├── main/
│ │ └── java/
│ │ └── cloud/dbug/pack2server/
│ │ ├── cli/ # 命令行接口
│ │ ├── common/ # 通用工具类
│ │ │ ├── detector/ # 模组检测器
│ │ │ ├── downloader/ # 下载器
│ │ │ ├── fetcher/ # 数据获取器
│ │ │ └── provider/ # 版本提供者
│ │ └── entity/ # 实体类
│ └── test/
└── build.gradle # 构建配置
# 构建项目
./gradlew build
# 运行测试
./gradlew test
# 查看项目版本
./gradlew printVersion
# 查看所有版本信息
./gradlew printAllVersions本项目采用 MIT 许可证,详情请见 LICENSE 文件。