开发服务器
构建项目后,下一步是启动开发服务器进行测试。这个章节将教你如何启动和管理开发服务器。
什么是开发服务器?
开发服务器是一个本地运行的 Minecraft 服务器,用于:
- 测试插件:验证插件功能是否正常
- 调试代码:查找和修复问题
- 开发新功能:实时测试新功能
- 性能测试:测试服务器性能
开发服务器配置
EnderRealm 的开发服务器包含以下组件:
| 组件 | 说明 |
|---|---|
| Paper 服务器 | Minecraft 服务器核心 |
| 预装插件 | Citizens、Geyser、ProtocolLib 等 |
| 大厅世界 | 开发用的地图 |
| 配置文件 | 预设的服务器配置 |
启动开发服务器
步骤 1:构建并部署
首先,构建所有模块并部署到 _server/ 目录:
bash
./gradlew setupDevServer这个命令会:
- 构建所有 Java 模块
- 构建 Floodgate 子模块
- 复制 JAR 文件到
_server/plugins/ - 复制运行时文件到
_server/
步骤 2:启动服务器
构建完成后,启动开发服务器:
bash
./gradlew runDevServer你会看到类似输出:
> Task :runDevServer
Starting Minecraft server...
[Server] Starting org.bukkit.craftbukkit.Main
[Server] *** Warning, you're not using the recommended Minecraft server software! ***
[Server] Loading libraries, please wait...
[Server] Starting Minecraft server version 1.21.4
[Server] Loading properties
[Server] Default game type: SURVIVAL
[Server] Generating keypair
[Server] Starting Minecraft server on *:25565
[Server] Using default channel type
[Server] Preparing level "world"
[Server] Preparing start region for dimension minecraft:overworld
[Server] Time elapsed: 1234 ms
[Server] Running delayed init tasks
[Server] Done (5.678s)! For help, type "help"提示
服务器启动后,终端会进入服务器控制台模式,你可以输入服务器命令。
步骤 3:连接服务器
使用 Minecraft 客户端连接服务器:
- 打开 Minecraft 启动器
- 选择版本 1.21.4(或兼容版本)
- 添加服务器:
localhost:25565 - 连接服务器
开发服务器命令
Gradle 任务命令
| 命令 | 说明 |
|---|---|
./gradlew setupDevServer | 构建并部署 |
./gradlew setupDevServer -Pforce | 强制覆盖所有文件 |
./gradlew runDevServer | 启动开发服务器 |
./gradlew cleanDevServer | 清理开发服务器 |
服务器控制台命令
服务器启动后,你可以在控制台输入命令:
| 命令 | 说明 |
|---|---|
stop | 停止服务器 |
help | 查看帮助 |
list | 查看在线玩家 |
op <player> | 给玩家管理员权限 |
gamemode creative <player> | 切换游戏模式 |
游戏内命令
连接服务器后,可以在游戏内使用标准 Minecraft 命令:
| 命令 | 说明 |
|---|---|
/gamemode creative | 切换创造模式 |
/tp <x> <y> <z> | 传送 |
/give <player> <item> | 给予物品 |
开发服务器目录结构
开发服务器的文件位于 _server/ 目录:
_server/
├── server.jar # Paper 服务器
├── server.properties # 服务器配置
├── bukkit.yml # Bukkit 配置
├── spigot.yml # Spigot 配置
├── eula.txt # EULA 同意
├── world/ # 主世界
├── hub/ # 大厅世界
└── plugins/ # 插件目录
├── EnderRealmServerCore-*.jar
├── bedwars-*.jar
├── disaster-*.jar
├── BlockedInCombat-*.jar
├── easy4form-*.jar
├── floodgate-spigot.jar
├── Citizens-*.jar
├── Geyser-Spigot.jar
├── ProtocolLib.jar
└── ...修改代码并测试
开发过程中,你可能需要修改代码并测试:
方法一:重新构建并重启
bash
# 1. 停止服务器(在控制台输入 stop)
# 2. 重新构建
./gradlew setupDevServer
# 3. 重新启动
./gradlew runDevServer方法二:热重载(仅配置文件)
如果只修改了配置文件,可以使用服务器的重载命令:
# 在服务器控制台输入
reload警告
不建议在生产环境使用 reload 命令,可能会导致问题。
开发服务器配置
server.properties
主要配置项:
properties
# 服务器端口
server-port=25565
# 最大玩家数
max-players=2000
# 游戏模式
gamemode=survival
# 难度
difficulty=normal
# 白名单
white-list=false
# 在线模式
online-mode=falsebukkit.yml
主要配置项:
yaml
settings:
allow-end: true
warn-on-overload: true
permissions-file: permissions.yml
update-folder: update
plugin-profiling: false
connection-throttle: 4000
query-plugins: true
deprecated-verbose: default
shutdown-message: Server closed常见问题
Q: 服务器启动失败,提示端口被占用?
A: 检查端口占用情况:
bash
# Windows
netstat -ano | findstr :25565
# macOS/Linux
lsof -i :25565如果端口被占用,可以:
- 关闭占用端口的程序
- 修改
server.properties中的端口
Q: 服务器启动失败,提示内存不足?
A: 修改 JVM 参数。编辑 build.gradle.kts,找到 runDevServer 任务:
kotlin
tasks.register<JavaExec>("runDevServer") {
// 修改内存参数
jvmArgs = listOf("-Xmx4096M", "-Xms4096M")
}Q: 插件加载失败?
A: 检查以下几点:
- JAR 文件是否正确生成
- plugin.yml 配置是否正确
- 查看服务器日志中的错误信息
Q: 如何查看服务器日志?
A: 服务器日志位于:
- 控制台输出
_server/logs/latest.log
Q: 如何重置开发服务器?
A: 使用以下命令:
bash
# 清理开发服务器
./gradlew cleanDevServer
# 重新构建并部署
./gradlew setupDevServer
# 重新启动
./gradlew runDevServer开发服务器最佳实践
1. 定期备份
重要修改前,备份 _server/ 目录:
bash
# 备份
cp -r _server/ _server_backup/
# 恢复
cp -r _server_backup/ _server/2. 使用版本控制
_server/ 目录已被 gitignore,不需要提交。
3. 监控服务器性能
服务器预装了 spark 插件,可用于性能分析。具体用法请参考 spark 官方文档。
下一步
开发服务器启动成功后,让我们继续学习 后端服务。