Phasometer VS Fix

Phasometer VS Fix

修复了在安装Valkyrien Skies时,凋灵风暴模组中的相位计无法检测到凋灵风暴的问题。

本项目完全使用 Claude 进行 vibe coding 方式完成。请勿就本模组的任何技术细节向我提问。

我的理解:当你使用相位仪时,凋灵风暴模组会检查你是否正在注视凋灵。如果是:将凋灵的信息写入相位仪 NBT 数据(例如:{Phase: 3}),如果否:则删除该信息。这一切都在服务器端发生。然后客户端从相位仪获取该信息并显示在屏幕上。Valkyrien Skies 模组会修改某些服务器端的内容,从而导致此功能失效。

Claude 的描述:

根本原因:Valkyrien Skies 钩入 Level.getEntities() 方法,并将搜索边界框转换为舰船空间坐标。相位仪在内部使用 ProjectileUtil.getEntityHitResult(),该方法会调用 Level.getEntities() —— 因此其实体搜索始终返回空结果,无论凋灵风暴距离多远。

修复方法:将实体搜索替换为 ServerLevel.getAllEntities(),该方法直接遍历实体存储,不会被 Valkyrien Skies 拦截。