EixClient

为竞技而生的下一代客户端

EixClient 是一套基于 Minecraft Forge 1.20.1 构建的完整客户端增强方案。87 个功能模块、自研 Skija 渲染层、网易云音乐集成,以及一整套面向反作弊的服务端等价交互校验。

87功能模块
347Java 源文件
4功能分类
9内嵌依赖库

核心特性

不只是功能堆砌 —— 每个模块都按服务端的判定口径重新实现,追求「看起来就是正常操作」。

⚔ 服务端等价距离校验

攻击与放置全部改用「眼睛 → 目标包围盒最近点」的距离度量,与反作弊服务端的计算口径一致。出手前用同口径射线二次确认,同时排除隔墙行为。默认攻击 3.0、放置 4.5 格,并留 0.06 格安全余量吃掉客户端与服务端的位置差。

🎯 GCD 灵敏度网格吸附

反作弊会统计相邻两包视角增量的最大公约数 —— 真人玩家的增量永远是灵敏度步长的整数倍,直接写入的浮点数一眼就穿。所有出包旋转以「上一次真正发出的角度」为锚点做四舍五入,保证服务端看到的每一个增量都严格落在网格上。

📈 人类化时序分布

攻击间隔采用 Irwin-Hall 近似的钟形分布叠加长尾,取代原来那种「均匀抖动」的平顶分布。冲刺重置按概率触发并有冷却兜底,避免出现「每一刀都精确重置」这种人类做不到的机械行为。

🖥 Skija 硬件渲染

界面完全基于 Skija(Skia 的 Java 绑定)绘制,支持高斯模糊、圆角裁剪、渐变与自定义字体。灵动岛采用真实的圆角矩形与模糊背板,歌词支持卡拉OK 式逐句进度与交叉淡入淡出。

🎵 网易云音乐集成

内置完整音乐播放器,支持本地文件与在线播放双模式。在线模式可粘贴链接、歌曲 ID 或关键词搜索,自动解析播放地址与歌词,封面异步加载缓存,并支持一键下载到本地音乐目录。

⚡ 零分配事件分发

事件管理器的分发路径从反射 Method.invoke 改为注册期生成的 MethodHandle。原方案每次派发都会新建一个变长参数数组 —— 渲染事件每帧触发、上百模块叠加,是掉帧的主要来源之一。

模块体系

共 87 个模块,按战斗 / 移动 / 视觉 / 杂项四类划分,均可在游戏内 GUI 实时开关与调参。

战斗 · Combat 11 模块

KillAura 杀戮光环AttackCrystal 水晶攻击AimAssist 瞄准辅助 AutoClicker 自动点击AutoHeal 自动回血AutoThrow 自动投掷 Velocity 反击退KeepSprint 保持疾跑AntiBots 反人机 TickBase Tick 基Aura 光环

移动 · Movement 17 模块

Scaffold 自动搭路Speed 加速Fly 飞行 GrimSpeed Grim 加速GrimFly Grim 飞行GrimLowHop 低跳 LongJump 跳远Blink 瞬移NoFall 免摔伤害 NoSlow 无减速NoJumpDelay 无跳跃延迟Sprint 自动疾跑 SafeWalk 安全行走Eagle 安全蹲搭FastWeb 快速蜘蛛网 Stuck 卡空AutoStuck 自动卡空

视觉 · Render 35 模块

DynamicIsland 灵动岛ArrayList 模块列表HUD 抬头显示 HUDEditor HUD 编辑器ClickGUI 点击界面TargetHUD 目标状态 TargetESP 目标 ESPGlow 透视发光BedESP 床透视 ChestESP 箱子透视NameTags 名称标签NameProtect 名称保护 Watermark 客户端水印Projectiles 投掷物落点ItemTags 物品标签 EffectHUD 效果显示EffectTags 效果标签KeyBinds 按键显示 Compass 指南针Scoreboard 计分板MotionBlur 动态模糊 PostProcess 后处理Particles 粒子FullBright 全亮 Fov 视场角ViewClip 视角穿墙NoRender 无渲染 NoHurtCam 无受伤抖动AntiBlindness 防失明AntiNausea 反恶心 Animations 动画TimeChanger 时间更改Weather 天气 Notification 通知ServerNameSpoof 服务器名伪装

杂项 · Misc 20 模块

MusicPlayer 音乐播放器Target 目标管理Teams 队伍 ClientFriend 好友InventoryCleaner 背包整理ChestStealer 箱子小偷 AutoTools 自动工具AutoHeypixel 自动加入AntiFireball 反火球 FastPlace 快速放置GhostBedMine 隔墙挖床GhostChestOpen 隔空开箱 Disabler 反检测Helper 助手KillSay 击杀喊话 Spammer 自动刷屏MiddleClick 中键点击ChestStealer 快速搜箱 AutoSoup 自动喝汤ServerUtils 服务端工具

技术架构

完整的构建环境、依赖管理与运行时结构。

MINECRAFT1.20.1
MOD LOADERForge 47.4.6
MAPPINGSParchment 2023.09.03
BUILDGradle 8.8 + ForgeGradle 6.0
JAVA17 (Temurin)
MOD IDEixClient
AUTHORjiuxian_baka
VERSION9.2

🧩 Mixin 字节码注入

通过 Mixin 0.8.5 注入原版客户端逻辑,覆盖 LocalPlayer#sendPosition、KeyboardInput#tick、Connection 等关键路径。旋转出包走统一的 EventMotion 通道,只改写数据包而不同步修改玩家字段 —— 相机保持独立。

📦 jarJar 依赖内嵌

9 个第三方库随 jar 一起打包,用户无需额外安装。包括 Skija 渲染引擎、MP3SPI/VorbisSPI 音频解码、aio-core 异步网络以及 humbleui types。

🔧 JPMS 模块层修复

内嵌的 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 深度联动。

  1. 1

    双模式播放器界面

    标题栏可切换「本地 / 在线」。本地模式列出音乐目录中的文件;在线模式下输入框变为搜索框,支持粘贴歌曲链接、纯数字 ID 或直接输入歌名关键词。

  2. 2

    智能链接识别

    自动区分歌曲 ID、歌单链接、专辑链接与普通文本,分别走不同的解析路径;识别不出来时回退为关键词搜索。

  3. 3

    异步解析不卡顿

    所有网络请求在后台线程执行,结果切回客户端线程更新界面,解析期间界面保持可交互。

  4. 4

    歌词精确对齐

    在线播放时按歌曲 ID 直接拉取歌词,不走「歌名 + 歌手」的模糊匹配,避免同名歌曲串词。歌词缓存以 ID 为键。

  5. 5

    灵动岛歌词显示

    逐句交叉淡入淡出(280ms,easeOutCubic),并支持卡拉OK 式进度裁切 —— 唱过的部分高亮,未唱到的压暗。

  6. 6

    限流自动绕过

    接口按请求体中的 IP 维度统计配额(每接口 10 次 / 分钟),内置 IP 池在收到 429 时自动轮换,用户侧无感知。

  7. 7

    封面缓存与下载

    封面异步加载并落地缓存;左键点击播放,右键直接下载到本地音乐目录。

🎚 音质档位

支持 standard / exhigh / lossless / hires / jyeffect / sky / dolby / jymaster / vivid 多档切换。注意:客户端内置解码器仅支持 MP3,因此在线播放固定使用 MP3 档位,其他档位(FLAC / AAC)可用于下载收藏。

🎛 灵动岛样式

提供「岛」与「胶囊」两种视觉样式。岛式为经典圆角矩形,胶囊式两端为完整半圆,圆角半径随内容尺寸自动计算,支持实时切换。

版本历程

近期主要版本的关键改动。

v9.2

卡顿与移动错乱修复

修复客户端持续卡顿、以及「攻击几下后人物移动彻底错乱」两个问题。卡顿根因是灵敏度网格量化的噪声系数每秒被重新随机一次,使得即使视角完全没动,发往服务端的旋转值也逐 tick 变化,移动包因此每 tick 都携带旋转增量,服务端持续做位置校验并回拉;现已把噪声固定为整局一致,并对「输入未变」做逐位短路。移动错乱根因是 WASD 输入被重复做了一次参考系反向旋转 —— 而位移参考系本已统一,多转的角度使本地预测与服务端解释相差一个可观的差值。同时为全局旋转接管引入所有权仲裁,避免多模块互相抢占与误清。

v9.1

位置同步链路修复

修复攻击时聊天栏刷出 Lagback detected 计数、随后被服务端判定「异常数据包」踢出的问题。原实现把常规位置同步包误当作回退证据来计数;同时反击退模块会延迟缓存入站包并在溢出时一次性重放,而卡空模块在未进入有效阶段时也会吞掉全部出站移动包 —— 三者叠加使客户端与服务端的位置认知持续分叉。现已改为按真实位移偏差判定回退、位置包立即放行、溢出丢弃而非补发。

v9.0β

移动参考系修复

重写 WASD 输入的服务端视角转换逻辑。原实现内部硬编码玩家真实视角作为基准,导致参考系转换实际未生效,表现为「开启杀戮攻击后走路持续偏移」。现改用标准二维旋转矩阵并做模长归一化,只转方向不改速度。同时修复旋转接管释放时未重新锚定角度快照导致的视角残留。

v7.0

杀戮锁定与样式扩展

修复 KillAura 目标脱离范围后仍持续锁定的问题 —— 拆分「瞄准距离」与「出手距离」双重门控,加入迟滞防抖,并在失去目标时主动释放全局旋转接管。灵动岛新增胶囊样式。Scaffold 与 Velocity 替换为更稳定的实现版本。

v6.5

发包限流

修复搭路模块因同一 tick 连续发送多个右键包而被服务器判定「发包过多」踢出的问题,加入硬性发包间隔阀门。修正静默旋转状态下完全不发包的回归缺陷。

v4.0–v6.0

音乐系统与绕过加固

接入网易云音乐解析接口,新增 11 个客户端类与完整播放器界面。引入 GCD 量化、人类化时序、合法冲刺重置与 Reach 校验四件套;事件分发路径从反射改为 MethodHandle 以消除渲染期分配开销。

v1.0–v3.0

基础框架

搭建模块系统、事件总线、数值管理系统与基于 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,因此在线播放固定使用 MP3 档位。其他档位(FLAC / AAC)可用于「下载收藏」到本地,离线后用对应解码器播放。

KillAura 的 Aim Range 和 Reach 有什么区别?

Aim Range 是「瞄准距离」—— 锁定目标的范围;Reach 是「出手距离」—— 实际攻击 / 放置的判定距离。自 v7.0 起拆分为双重门控并加入迟滞防抖,失去目标时会主动释放全局旋转接管。

攻击时出现 Lagback 计数是怎么回事?

旧版把常规位置同步包误当作回退证据来计数,叠加反击退延迟重放与卡空吞包,使客户端与服务端位置认知持续分叉。该问题已在 v9.1 修复:按真实位移偏差判定回退、位置包立即放行、溢出丢弃而非补发。

Speed / Fly 这些模块名为什么显示成「嘻嘻哈哈」?

这是名称保护 / 反扫描的显示伪装(NameProtect 类效果),仅改变界面与上报中的展示名,模块实际功能不受影响。

支持哪些服务端版本?

基于 Minecraft Forge 1.20.1 构建,定位为「服务端等价交互校验」。具体服务端兼容取决于该版本反作弊的判定口径;建议先在合规 / 学习环境验证后再上线使用。

下载

当前版本 9.2 · Minecraft Forge 1.20.1 · Windows x64

完整版 · FULL

EixClient-1.20.1-Forge-9.2.jar
34.7 MB · 已内嵌全部运行库

精简版 · SLIM

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 音频解码),无需额外前置;精简版体积更小,适合不依赖内置音乐播放的场景