最省事的是启动器:一键装 Java、装游戏、装 Mod,然后一键起服务端 + 客户端。
想手动来也行 —— 只需要 JDK 21 和双击一次 一键启动.bat。
server-1.0.0-all.jar、PlantGame2-1.0.0.jar、
plant-mod-agent.jar 和两个启动脚本。启动服务端.bat <端口>(默认 25566),每秒探测一次端口。启动客户端.bat(带 -javaagent,mod 才会加载)。一键启动.bat 25600。客户端用的是它自己记住的地址;
如果和服务端端口不一致,去连接界面把地址改成 127.0.0.1:端口。不想用 bat,或者想看完整日志时。
# 服务端(在游戏根目录) java -Dfile.encoding=GBK -javaagent:plant-mod-agent.jar -jar server-1.0.0-all.jar 25566 # 客户端(另开一个窗口,同样在游戏根目录) java -Dfile.encoding=GBK -javaagent:plant-mod-agent.jar -jar PlantGame2-1.0.0.jar # 想验证内核有没有挂上,看这两行: [PlantMod] 内核扩展已挂载:服务端点击钩子 + ModNet(模组网络通道) + 方块新增同步 [PlantMod] 内核注入: ...BlockOutputter#generateChunk(世界生成:种矿脉,末尾)
-Dfile.encoding=GBK 是为了让日志中文不乱码(Java 18+ 默认 UTF-8,而中文控制台通常是 936)。
bat 里会自动按 chcp 结果选择 GBK 或 UTF-8。PlantGame\ ├─ 一键启动.bat ← 起服务端 + 客户端 ├─ 启动服务端.bat / 启动客户端.bat ├─ plant-mod-agent.jar 模组内核(Premain-Class = KernelAgent) ├─ plant-mod-agent.jar.orig 原版引擎备份(想还原就改回来) ├─ server-1.0.0-all.jar 服务端(含全部依赖) ├─ PlantGame2-1.0.0.jar 客户端 ├─ config\constants.json 物理/世界常量(30 TPS、blockSize=16…) ├─ resourcePacks\Vanilla\ 资源包:30 张 PNG + mapper.json ├─ mods\hotbar.jar mod:快捷栏 / 背包 / 3×3 合成台 / 设置面板 ├─ hotbar.settings mod 的设置(ESC 面板里改,删掉恢复默认) ├─ 网页\ 这套静态站点 └─ 开发\ 源码 / 文档 / 工具 / 无头自测 ├─ 内核\src\... 6 处注入 + ModNet + 方块同步 + 世界生成 ├─ 项目\hotbar\src\... mod 源码(改完双击 编译打包.bat) ├─ 文档\MOD_开发指南.md 引擎/API/贴图/坑 的完整参考 └─ 工具\无头自测\ 不开游戏也能验的 6 个测试
| 现象 | 原因 | 怎么办 |
|---|---|---|
| 客户端连不上 / 一直停在连接界面 | 地址端口和服务端不一致(客户端会记住上次用的地址) | 连接界面把地址改成 127.0.0.1:25566(或你启动服务端用的端口) |
| 右键能放,但屏幕上看不见方块 | 旧版内核不发"方块新增"包(引擎原生就没有这条通道) | 用当前 plant-mod-agent.jar 启动,日志里应看到"方块新增同步"那行 |
| 放上去的方块能站上去、但像穿模 | 快照里碰撞矩形用了世界坐标(应是区块局部坐标) | 换当前内核;测试 KernelBlockSyncTest 会校验这一点 |
| 挖掉又恢复 / 怎么挖都挖不掉 | 旧的兜底放置通道越过引擎同 tick 的放挖顺序 | 当前版本已删除该通道,只保留注册;重启服务端 + 客户端 |
| 对着背景格狂点能刷方块 | 把背景方块的 isBackground() 当判据(地形背景方块全是 false) |
已改为查前景层;重启加载新 mod |
| 所有贴图变成 missing texture | 资源包索引缺失或路径写错 | 双击 开发\工具\检查贴图.bat;确认工作目录是游戏根 |
| 面板一打开整屏变黑 | 引擎画完后关了 GL 混合,半透明遮罩变成实心 | 当前版本每次画 shapes 前自己开混合;重启加载新 mod |
| 改了源码/贴图没生效 | mods\*.jar、agent jar 只在启动时读一次;贴图可用 R 重载 |
重启服务端和客户端;贴图在游戏内按 R |
| 日志中文乱码 | Java 输出 UTF-8,控制台是 GBK | 用 bat 启动(会自动选编码),或自己加 -Dfile.encoding=GBK |