这是一个面向 NeoForge 1.21.1 的小型兼容修复模组,用来修复 AoA3 3.7.16.1 中玩家使用手里剑时可能触发的客户端崩溃。
崩溃日志显示,aoa3:slice_star 在客户端命中实体时进入了 AoA3 的伤害处理逻辑,随后调用了依赖服务端实例的注册表访问代码:
SliceStarEntity#doEntityImpact(...)DamageUtil#doProjectileAttack(...)RegistryUtil#getDataDrivenRegistry(...)在纯客户端上下文中,WorldUtil.getServer() 返回 null,最终触发空指针异常并导致游戏崩溃。
本模组通过 Mixin 定向注入 AoA3 的 SliceStarEntity:
net.tslat.aoa3.content.entity.projectile.thrown.SliceStarEntitydoEntityImpact(...)这样可以保留服务端侧的正常伤害结算,同时绕开客户端本地错误路径。
当前仓库已经移除了构建缓存、IDE 配置和无关模板文件,保留的是最小源码集合。
你需要自行准备以下环境:
构建命令:
gradle build
说明:
gradlew 包装器脚本gradlew、gradlew.bat 和 gradle-wrapper.jarsrc/main/java/net/ming/aoa3_fix/Aoa3_fix.java
src/main/java/net/ming/aoa3_fix/mixin/SliceStarEntityMixin.java
src/main/resources/aoa3_fix.mixins.json
src/main/templates/META-INF/neoforge.mods.toml
fix.txt
Aoa3_fix.java:模组入口SliceStarEntityMixin.java:核心修复逻辑aoa3_fix.mixins.json:Mixin 配置neoforge.mods.toml:模组元数据与依赖声明fix.txt:原始崩溃日志,作为问题记录保留为了让仓库更干净,以下不必要内容已经移除:
.gradle/build/.idea/.vscode/gradle/wrapper/ 残留AoA3 3.7.16.1SliceStarEntity 的类名、方法名或参数签名,需要同步调整 Mixin