简介
这个项目是 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 事件活塞优化
- 优化了碰撞框
- 优化了攻击距离计算
- 检测数据包顺序(修复了许多卡顿、自动放置方块等问题)
- 检查库存交互(防止使用合成槽作为额外存储、在打开库存时移动等...)
LineOfSightPlace - 检查方块放置/容器交互是否在玩家的视线范围内。阻止通过墙壁或在玩家未注视的方向放置方块或打开箱子。
通过终端/命令提示符编译
- git clone https://github.com/Axionize/LightningGrim(或点击绿色代码按钮、下载 ZIP,然后解压。)
- cd LightningGrim
- gradlew build
- 最终 jar 文件位于 build/libs
API 信息
Grim 的 API 允许你将 Grim 集成到自己的插件中。更多信息,请查看 API 的 GitHub 仓库这里 。
Grim supremacy
以下是使 Grim 在众多反作弊程序中脱颖而出的主要核心
移动模拟引擎
- 我们有一份与玩家可能动作完全一致的复制
- 这涵盖了从基本行走、游泳、击退、蜘蛛网到气泡柱等所有情况
- 甚至包括从船到猪再到疾行者等各种载具的乘坐实体
- 基于覆盖边缘情况以确保准确性
- 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 看到玻璃板碰撞框
- 许多其他方块也有这种对细节的极致关注
- 水 logged 方块对 1.12 或以下玩家不存在
- 客户端版本中不存在的方块使用 ViaVersion 的替代方块
- 无法翻译到旧版本的数据块被正确替换
- 所有原版碰撞盒均已实现
完全异步和多线程设计
- 所有移动检查以及绝大多数监听器都在 netty 线程上运行
- 反作弊系统可以扩展到数百名甚至更多的玩家
- 线程安全经过仔细考虑
- 下一个核心允许这种设计
完整的世界复制
- 反作弊系统为每个玩家保留一个世界副本
- 该副本通过监听区块数据包、方块放置和方块变化创建
- 在所有版本中,使用调色板将每个区块压缩至 16-64 KB
- 利用这个缓存,反作弊系统可以安全地访问世界状态
- 每个玩家,缓存支持多线程设计
- 使用数据包发送给玩家假方块是安全的,不会导致误报
- 为每个玩家重新创建世界以实现延迟补偿
- 客户端方块不会与基于数据包的方块产生问题。方块闪烁不会使反作弊系统误报。
延迟补偿
- 世界变化会排队直到它们到达玩家
- 这意味着在玩家下方破坏方块不会触发反作弊系统
- 从飞行状态到移动速度都将进行延迟补偿
物品补偿
- 跟踪玩家的物品以防止在高延迟时出现幽灵方块和其他错误
设计安全,而非隐藏
- 所有系统都设计得高度安全,且在数学上不可能被绕过
- 例如,预测引擎知道所有可能的移动,并且无法被绕过

Comments NOTHING