6.4 KiB
6.4 KiB
Neko Core 改动与使用说明
本文档基于当前工作区变更状态整理,目标是说明:
- 这个服务端改了什么
- 如何构建与使用
- 做了哪些优化
- 当前已知限制与建议
1. 项目定位与结果
当前分支是在 Luminol 1.21.8 基础上,完成了 Neko Core 定制化改造,已实现:
- 构建链路可用(
applyAllPatches可通过) luminol-server可编译- 可产出并启动可运行包(
paperclip/bundler) - 新增后端切换命令,可在游戏内切换碰撞加速后端(含
FFM)
2. 本次主要改动(按模块)
2.1 构建与打包链路
涉及文件:
build.gradle.ktsluminol-server/build.gradle.ktsluminol-server/build.gradle.kts.patch
主要改动:
- 锁定/适配
hyacinthusweight构建链路,保证 patch + mache 流程可运行。 - 修复
macheRemapJar参数链路(显式 remapper、mappings、params 的可用输入)。 - 修复打包任务名与类型适配:
- 使用
createBundlerJar/createPaperclipJar(替代旧命名)。
- 使用
- 统一到 Java 25 构建运行方案,确保插件与打包任务兼容。
2.2 补丁与上游对齐
涉及目录:
luminol-api/paper-patches/features/*.patchluminol-server/paper-patches/features/*.patchfolia-api(工作区变更)folia-server(工作区变更)
主要改动:
- 对漂移的 feature patch 做了重建与兼容修复,恢复补丁应用链路。
- 修复了因补丁上下文漂移导致的
apply...FeaturePatches失败问题。 - 保留了当前能通过构建的 patch 状态。
2.3 品牌与命令
涉及文件:
luminol-server/src/main/java/me/earthme/luminol/config/modules/misc/ServerModNameConfig.javaluminol-server/src/main/java/me/earthme/luminol/commands/CommandRegister.javaluminol-server/src/main/java/me/earthme/luminol/commands/backend/NekoBackendCommand.java(新增目录/文件)
主要改动:
- 默认服务端名改为
Neko Core。 - 注册并启用
/nekobackend命令。
/nekobackend 子命令:
status:查看当前生效后端和关键配置set <AUTO|GPU|FFM|JAVA|VANILLA>:运行时切换后端reload:重载后端选择器
2.4 配置系统重构(优化模块)
涉及文件:
luminol-server/src/main/java/me/earthme/luminol/config/modules/optimizations/AcceleratedCollisionConfig.javaAfkEntityTrackingConfig.javaEntityLimiterConfig.javaExplosionOptimizerConfig.javaMobAiReducerConfig.javaSkipZeroDeltaPacketsConfig.javaVehicleMotionConfig.java
主要改动:
- 统一到 Luminol 现行配置风格(
IConfigModule+ 注解字段)。 - 修复历史“伪 API”配置写法导致的编译与运行不一致问题。
2.5 优化逻辑实现与兼容修复
涉及文件:
collision/*(CollisionBackendSelector、RegionCollisionHandler、backend/*)afktracking/AfkTrackingManager.javaentitylimiter/LuminolEntityLimiter.javamobaireducer/*(MobAiReducerHandler、OptimizedBreedGoal、OptimizedTemptGoal)explosion/LuminolExplosionOptimizer.javaorg/leavesmc/.../LeavesPluginMeta.javasrc/minecraft/java/...与src/minecraft/resources
主要改动:
- 恢复并对齐
FFM/GPU/JAVA/VANILLA后端选择逻辑。 - 修复若干上游 API 变化导致的编译点(实体、世界、门户位置转换、插件元数据等)。
- 调整部分优化逻辑为当前上游可编译/可运行版本。
3. 优化了什么(功能视角)
3.1 碰撞加速(AR / Accelerated Recoiling 体系)
- 支持多后端:
FFM(Foreign Function & Memory)GPUJAVAVANILLA(回退)AUTO(自动选择)
- 可通过游戏内命令热切换后端(
/nekobackend set ...)。
3.2 AFK 追踪优化
- 保留 AFK 追踪入口与配置化能力。
- 对不兼容的底层字段访问做了兼容处理,避免构建失败。
3.3 实体限制与 AI 优化
- 实体上限限制器、溢出清理、AI 目标逻辑等可配置能力保留。
- 对上游访问权限/签名变化做了兼容调整。
3.4 爆炸与网络细节优化
- 包含爆炸优化、零位移包处理、载具运动相关优化配置入口。
4. 使用方法
4.1 构建
建议环境:
- JDK: Java 25(当前链路已按此验证)
- OS: Windows(已验证)
在仓库根目录执行:
./gradlew applyAllPatches
./gradlew :luminol-server:createPaperclipJar
产物路径:
luminol-server/build/libs/luminol-paperclip-1.21.8-R0.1-SNAPSHOT.jarluminol-server/build/libs/luminol-bundler-1.21.8-R0.1-SNAPSHOT.jarluminol-server/build/libs/luminol-server-1.21.8-R0.1-SNAPSHOT.jar
4.2 启动
java -jar luminol-paperclip-1.21.8-R0.1-SNAPSHOT.jar --nogui
首次启动需同意 EULA:
- 编辑
eula.txt为eula=true
4.3 游戏内后端控制(AR)
/nekobackend status
/nekobackend set FFM
/nekobackend set GPU
/nekobackend set JAVA
/nekobackend set VANILLA
/nekobackend set AUTO
/nekobackend reload
说明:
set会立即切换并更新运行态配置字段。- 如果某后端初始化失败,会自动回退(可用
status确认当前实际后端)。
5. 关键配置项(示例)
路径:luminol_config 下对应优化配置(按模块名)。
重点建议关注:
accelerated_collision.enabledaccelerated_collision.backend(AUTO/GPU/FFM/JAVA/VANILLA)accelerated_collision.max_collisionaccelerated_collision.grid_sizeaccelerated_collision.density_thresholdaccelerated_collision.max_threads
6. 已知注意事项
- 本次改造包含大量上游漂移兼容修复,后续升级 Minecraft/Folia 版本时,建议优先重跑 patch 重建流程再改业务逻辑。
FFM后端依赖 native 库资源加载,若切到FFM失败,请先检查平台库文件是否打入最终 jar 的natives/<platform>/目录。- 若打包时报
paperclip产物文件占用,先关闭仍在运行的服务端 Java 进程再重试。
7. 快速验收清单
- 能执行
:luminol-server:createPaperclipJar paperclip可启动并通过 EULA 后进入Done (...)- 进服后
/nekobackend status可返回当前状态 /nekobackend set FFM可执行并反馈切换结果
如需,我可以在下一步补一版「面向运维发布」的精简版文档(只保留部署、参数、回滚、排障)。