# Lightning Grim Anticheat
这个项目是 GrimAC 的一个分支,实现了显著的性能提升,以及卓越的射程、方块放置和交互检查。如果您需要错误修复或增强功能且无法赞助该工作,欢迎提交拉取请求。
GrimAC 是一个专为 1.21.5 设计的开源 Minecraft 反作弊插件,支持 1.8-1.21.5。 它可以运行在 1.8-1.21.5 上,并且完全支持通过 ViaVersion 在 1.7-1.21.x 上连接的玩家,无论服务器的原生版本如何。 Geyser 玩家完全被排除在外。
### 当前上游版本没有的更改 (包括但不限于)
- WallHit - 检查是否通过墙壁击中
- EntityPierce - 检查是否击穿其他实体
- Bukkit 事件活塞优化
- 优化了 Hitbox/碰撞箱
- 优化了射程计算
- 检查 PacketOrder(修复了大量的 noslow、autoblocks 等问题...)
- 检查库存交互(防止使用制作槽作为额外存储空间、在打开库存时移动等...)
- ~~LineOfSightPlace - 检查方块放置/容器交互是否在玩家视线的范围内。阻止通过墙壁或玩家未看的方向放置方块和打开箱子。~~
### 通过终端/命令提示符编译
1. git clone [https://github.com/Axionize/LightningGrim](https://github.com/Axionize/LightningGrim) (或点击绿色的“代码”按钮,下载 ZIP,然后解压它。)
2. cd LightningGrim
3. gradlew build
4. 最终的 jar 位于 build/libs
### API 信息
Grim 的 API 允许您将 Grim 集成到您自己的插件中。 更多信息,请查看 API 的 GitHub 仓库 [这里](https://github.com/GrimAnticheat/GrimAPI)。
## Grim 至上
以下是 Grim 相对于其他反作弊插件脱颖而出的主要核心:
### 运动模拟引擎
* 我们有对玩家可能运动的 1:1 重现
* 这涵盖了从基本的行走、游泳、击退、蛛网到气泡柱的一切
* 它甚至涵盖了从船到猪到异足龙的实体骑乘
* 建立在覆盖边缘案例上以确认准确性
* 所有 1.13+ 客户端在 1.13+ 服务器上,1.12- 客户端在 1.13+ 服务器上,1.13+ 客户端在 1.12- 服务器上,以及 1.12- 客户端在 1.12- 服务器上,都得到支持,无论这些版本之间存在多大的技术变化。
* 碰撞顺序取决于客户端版本,并且是正确的
* 考虑了版本之间的一些小边界框差异,例如:
* 对于 1.7-1.8 玩家,单玻璃板将是 + 形状,对于 1.9+ 玩家是 * 形状
* 1.13+ 客户端在 1.8 服务器上看到 + 玻璃板的触击框是由于 ViaVersion
* 许多其他方块具有这种极端的细节关注。
* 水笼罩的方块对于 1.12 或更低的版本不存在
* 不存在于客户端版本的方块使用 ViaVersion 的替换方块
* 无法翻译到先前版本的方块数据会被正确替换
* 所有原版碰撞箱都已实现
### 完全异步和多线程设计
* 所有移动检查和绝大多数监听器都在 netty 线程上运行
* 反作弊可以扩展到数以百计的玩家,甚至更多
* 线程安全被仔细考虑
* 下一个核心允许这种设计
### 全世界复制
* 反作弊为每个玩家维护一个世界副本
* 副本由监听区块数据包、方块放置和方块更改来创建
* 在所有版本上,区块被压缩到每个区块 16-64 kb
* 使用此缓存,反作弊可以安全地访问世界状态
* 每个玩家,缓存允许多线程设计
* 安全地向玩家发送假方块(通过包)不会导致错误
* 为允许滞后补偿而为每个玩家重新创建世界
* 客户端方块不会因基于包的方块而导致问题。方块故障不会错误地触发反作弊。
### 延迟补偿
* 世界更改会排队直到到达玩家
* 这意味着在玩家下方破坏方块不会触发反作弊
* 从飞行状态到移动速度的一切都会进行延迟补偿
### 库存补偿
* 跟踪玩家的库存以防止高延迟时的幽灵方块和其他错误
### 安全设计,而非隐秘
* 所有系统都是设计为高度安全且数学上不可能被绕过的
* 例如,预测引擎知道所有可能的运动,并且无法被绕过