不只是功能堆砌 —— 每个模块都按服务端的判定口径重新实现,追求「看起来就是正常操作」。
攻击与放置全部改用「眼睛 → 目标包围盒最近点」的距离度量,与反作弊服务端的计算口径一致。 出手前用同口径射线二次确认,同时排除隔墙行为。默认攻击 3.0、放置 4.5 格,并留 0.06 格安全余量吃掉客户端与服务端的位置差。
反作弊会统计相邻两包视角增量的最大公约数 —— 真人玩家的增量永远是灵敏度步长的整数倍,直接写入的浮点数一眼就穿。 所有出包旋转以「上一次真正发出的角度」为锚点做四舍五入,保证服务端看到的每一个增量都严格落在网格上。
攻击间隔采用 Irwin-Hall 近似的钟形分布叠加长尾,取代原来那种「均匀抖动」的平顶分布。 冲刺重置按概率触发并有冷却兜底,避免出现「每一刀都精确重置」这种人类做不到的机械行为。
界面完全基于 Skija(Skia 的 Java 绑定)绘制,支持高斯模糊、圆角裁剪、渐变与自定义字体。 灵动岛采用真实的圆角矩形与模糊背板,歌词支持卡拉OK 式逐句进度与交叉淡入淡出。
内置完整音乐播放器,支持本地文件与在线播放双模式。在线模式可粘贴链接、歌曲 ID 或关键词搜索, 自动解析播放地址与歌词,封面异步加载缓存,并支持一键下载到本地音乐目录。
事件管理器的分发路径从反射 Method.invoke 改为注册期生成的 MethodHandle。
原方案每次派发都会新建一个变长参数数组 —— 渲染事件每帧触发、上百模块叠加,是掉帧的主要来源之一。
共 87 个模块,按战斗 / 移动 / 视觉 / 杂项四类划分,均可在游戏内 GUI 实时开关与调参。
当前版本 9.2 · Minecraft Forge 1.20.1 · Windows x64
.minecraft/mods/ 目录后启动游戏
下载前请确认你已了解目标服务器的规则。本客户端仅供技术学习与合规环境使用。
完整的构建环境、依赖管理与运行时结构。
通过 Mixin 0.8.5 注入原版客户端逻辑,覆盖 LocalPlayer#sendPosition、KeyboardInput#tick、
Connection 等关键路径。旋转出包走统一的 EventMotion 通道,只改写数据包而不同步修改玩家字段 —— 相机保持独立。
9 个第三方库随 jar 一起打包,用户无需额外安装。包括 Skija 渲染引擎、MP3SPI/VorbisSPI 音频解码、 aio-core 异步网络以及 humbleui types。
内嵌的 mp3spi 与 vorbisspi 会各自携带一份字节完全相同的
javazoom.spi.PropertiesContainer,导致 Forge 在构建模块层时抛出
ResolutionException 启动崩溃。构建脚本内置任务自动去重。
# 依赖已全部缓存,离线构建约 1 分钟 cd EixClient ./gradlew --no-daemon --offline --console=plain build # 产物 build/libs/EixClient-1.20.1-Forge-9.2.jar # 完整版 34.7 MB build/libs/EixClient-1.20.1-Forge-9.2-slim.jar # 精简版 24.7 MB BUILD SUCCESSFUL
注意:必须加 --offline。工程内有动态版本声明(ForgeGradle 的 [6.0.16,6.2)、
librarian 的 1.+ 等),联网检查新版本会卡在配置阶段十几分钟且零输出。
一套完整的本地 + 在线双模播放器,与游戏内 HUD 深度联动。
支持 standard / exhigh / lossless / hires / jyeffect / sky / dolby / jymaster / vivid 多档切换。 注意:客户端内置解码器仅支持 MP3,因此在线播放固定使用 MP3 档位,其他档位(FLAC / AAC)可用于下载收藏。
提供「岛」与「胶囊」两种视觉样式。岛式为经典圆角矩形,胶囊式两端为完整半圆, 圆角半径随内容尺寸自动计算,支持实时切换。
近期主要版本的关键改动。
修复客户端持续卡顿、以及「攻击几下后人物移动彻底错乱」两个问题。卡顿根因是 灵敏度网格量化的噪声系数每秒被重新随机一次,使得即使视角完全没动,发往服务端的 旋转值也逐 tick 变化,移动包因此每 tick 都携带旋转增量,服务端持续做位置校验并回拉; 现已把噪声固定为整局一致,并对「输入未变」做逐位短路。移动错乱根因是 WASD 输入被 重复做了一次参考系反向旋转 —— 而位移参考系本已统一,多转的角度使本地预测与服务端 解释相差一个可观的差值。同时为全局旋转接管引入所有权仲裁,避免多模块互相抢占与误清。
修复攻击时聊天栏刷出 Lagback detected 计数、随后被服务端判定「异常数据包」踢出的问题。
原实现把常规位置同步包误当作回退证据来计数;同时反击退模块会延迟缓存入站包并在溢出时一次性重放,
而卡空模块在未进入有效阶段时也会吞掉全部出站移动包 —— 三者叠加使客户端与服务端的位置认知持续分叉。
现已改为按真实位移偏差判定回退、位置包立即放行、溢出丢弃而非补发。
重写 WASD 输入的服务端视角转换逻辑。原实现内部硬编码玩家真实视角作为基准, 导致参考系转换实际未生效,表现为「开启杀戮攻击后走路持续偏移」。 现改用标准二维旋转矩阵并做模长归一化,只转方向不改速度。同时修复旋转接管释放时 未重新锚定角度快照导致的视角残留。
修复 KillAura 目标脱离范围后仍持续锁定的问题 —— 拆分「瞄准距离」与「出手距离」双重门控, 加入迟滞防抖,并在失去目标时主动释放全局旋转接管。灵动岛新增胶囊样式。 Scaffold 与 Velocity 替换为更稳定的实现版本。
修复搭路模块因同一 tick 连续发送多个右键包而被服务器判定「发包过多」踢出的问题, 加入硬性发包间隔阀门。修正静默旋转状态下完全不发包的回归缺陷。
接入网易云音乐解析接口,新增 11 个客户端类与完整播放器界面。 引入 GCD 量化、人类化时序、合法冲刺重置与 Reach 校验四件套; 事件分发路径从反射改为 MethodHandle 以消除渲染期分配开销。
搭建模块系统、事件总线、数值管理系统与基于 Skija 的渲染层, 完成 HUD、ClickGUI 与核心战斗 / 移动模块。修复 jarJar 内嵌依赖引发的 JPMS 模块层冲突启动崩溃。
--offline?[6.0.16,6.2)、librarian 的 1.+、
DevAuth 的 -latest)。Gradle 每次都会联网查询最新版本,在慢网络环境下会卡在配置阶段十几分钟且没有任何输出。
加上 --offline 后直接使用本地缓存,构建时间约 1 分钟。javazoom.spi.PropertiesContainer 所致。Forge 会把元数据中登记的内嵌 jar 注册为自动模块,
两个模块同时导出同一个包就会导致 JPMS 解析失败。构建脚本内的 fixJarJarSplitPackages
任务会在打包后自动移除重复类并清理未登记的残留内嵌 jar。vivid 档位返回的是 MP4(AAC),都无法直接流式播放。
这些档位仍可用于下载收藏,用外部播放器播放。[1.20.1,1.21),因此理论上 1.20.x 全系均可加载,但仅在 1.20.1 上做过完整测试。