开始游戏

最省事的是启动器:一键装 Java、装游戏、装 Mod,然后一键起服务端 + 客户端。 想手动来也行 —— 只需要 JDK 21 和双击一次 一键启动.bat

一键启动做了什么

  1. 检查文件确认同目录下有 server-1.0.0-all.jarPlantGame2-1.0.0.jarplant-mod-agent.jar 和两个启动脚本。
  2. 起服务端在新窗口里跑 启动服务端.bat <端口>(默认 25566),每秒探测一次端口。
  3. 等服务端就绪最多等 30 秒;如果端口本来就在监听(比如你已经开着服务端),这一步会直接跳过。
  4. 起客户端在新窗口里跑 启动客户端.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

想改东西?