不只是功能堆砌 —— 每个模块都按服务端的判定口径重新实现,追求「看起来就是正常操作」。
攻击与放置全部改用「眼睛 → 目标包围盒最近点」的距离度量,与反作弊服务端的计算口径一致。出手前用同口径射线二次确认,同时排除隔墙行为。默认攻击 3.0、放置 4.5 格,并留 0.06 格安全余量吃掉客户端与服务端的位置差。
反作弊会统计相邻两包视角增量的最大公约数 —— 真人玩家的增量永远是灵敏度步长的整数倍,直接写入的浮点数一眼就穿。所有出包旋转以「上一次真正发出的角度」为锚点做四舍五入,保证服务端看到的每一个增量都严格落在网格上。
攻击间隔采用 Irwin-Hall 近似的钟形分布叠加长尾,取代原来那种「均匀抖动」的平顶分布。冲刺重置按概率触发并有冷却兜底,避免出现「每一刀都精确重置」这种人类做不到的机械行为。
界面完全基于 Skija(Skia 的 Java 绑定)绘制,支持高斯模糊、圆角裁剪、渐变与自定义字体。灵动岛采用真实的圆角矩形与模糊背板,歌词支持卡拉OK 式逐句进度与交叉淡入淡出。
内置完整音乐播放器,支持本地文件与在线播放双模式。在线模式可粘贴链接、歌曲 ID 或关键词搜索,自动解析播放地址与歌词,封面异步加载缓存,并支持一键下载到本地音乐目录。
事件管理器的分发路径从反射 Method.invoke 改为注册期生成的 MethodHandle。原方案每次派发都会新建一个变长参数数组 —— 渲染事件每帧触发、上百模块叠加,是掉帧的主要来源之一。
共 87 个模块,按战斗 / 移动 / 视觉 / 杂项四类划分,均可在游戏内 GUI 实时开关与调参。
完整的构建环境、依赖管理与运行时结构。
通过 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 深度联动。
标题栏可切换「本地 / 在线」。本地模式列出音乐目录中的文件;在线模式下输入框变为搜索框,支持粘贴歌曲链接、纯数字 ID 或直接输入歌名关键词。
自动区分歌曲 ID、歌单链接、专辑链接与普通文本,分别走不同的解析路径;识别不出来时回退为关键词搜索。
所有网络请求在后台线程执行,结果切回客户端线程更新界面,解析期间界面保持可交互。
在线播放时按歌曲 ID 直接拉取歌词,不走「歌名 + 歌手」的模糊匹配,避免同名歌曲串词。歌词缓存以 ID 为键。
逐句交叉淡入淡出(280ms,easeOutCubic),并支持卡拉OK 式进度裁切 —— 唱过的部分高亮,未唱到的压暗。
接口按请求体中的 IP 维度统计配额(每接口 10 次 / 分钟),内置 IP 池在收到 429 时自动轮换,用户侧无感知。
封面异步加载并落地缓存;左键点击播放,右键直接下载到本地音乐目录。
支持 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 模块层冲突启动崩溃。
基于项目说明与版本历程整理的解答。
完整版已通过 jarJar 内嵌全部第三方库(含 MP3/Ogg 音频解码),无需额外前置;精简版体积更小(24.7 MB vs 34.7 MB),去除了内嵌音频解码库,适合不依赖内置音乐播放的场景。
--offline?工程内有动态版本声明(ForgeGradle 的 [6.0.16,6.2)、librarian 的 1.+ 等),联网检查新版本会卡在配置阶段十几分钟且零输出。加上 --offline 后可基于已缓存依赖在约 1 分钟内完成构建。
内嵌的 mp3spi 与 vorbisspi 各携带一份字节完全相同的 javazoom.spi.PropertiesContainer,会使 Forge 在构建模块层时抛出 ResolutionException。官方构建脚本内置去重任务已处理此问题;若手动改过依赖仍冲突,请清理重复导出包。
客户端内置解码器仅支持 MP3,因此在线播放固定使用 MP3 档位。其他档位(FLAC / AAC)可用于「下载收藏」到本地,离线后用对应解码器播放。
Aim Range 是「瞄准距离」—— 锁定目标的范围;Reach 是「出手距离」—— 实际攻击 / 放置的判定距离。自 v7.0 起拆分为双重门控并加入迟滞防抖,失去目标时会主动释放全局旋转接管。
旧版把常规位置同步包误当作回退证据来计数,叠加反击退延迟重放与卡空吞包,使客户端与服务端位置认知持续分叉。该问题已在 v9.1 修复:按真实位移偏差判定回退、位置包立即放行、溢出丢弃而非补发。
这是名称保护 / 反扫描的显示伪装(NameProtect 类效果),仅改变界面与上报中的展示名,模块实际功能不受影响。
基于 Minecraft Forge 1.20.1 构建,定位为「服务端等价交互校验」。具体服务端兼容取决于该版本反作弊的判定口径;建议先在合规 / 学习环境验证后再上线使用。
当前版本 9.2 · Minecraft Forge 1.20.1 · Windows x64
EixClient-1.20.1-Forge-9.2.jar
34.7 MB · 已内嵌全部运行库
EixClient-1.20.1-Forge-9.2-slim.jar
24.7 MB · 去除内嵌音频解码库
Minecraft 1.20.1 + Forge 47.4.6 及以上 · Java 17
将 jar 放入 .minecraft/mods/ 目录后启动游戏
完整版已通过 jarJar 内嵌全部第三方库(含 MP3/Ogg 音频解码),无需额外前置;精简版体积更小,适合不依赖内置音乐播放的场景