Minecraft Forge 1.20.1

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

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

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

核心特性

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

⚔服务端等价距离校验

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

🎯GCD 灵敏度网格吸附

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

📈人类化时序分布

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

🖥Skija 硬件渲染

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

🎵网易云音乐集成

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

⚡零分配事件分发

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

Module System

模块体系

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

战斗 · Combat

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

移动 · Movement

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

视觉 · Render

35 模块
DynamicIsland灵动岛 ArrayList模块列表 HUD抬头显示 HUDEditorHUD 编辑器 ClickGUI点击界面 TargetHUD目标状态 TargetESP目标 ESP Glow透视发光 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服务端工具
Download

下载 EixClient

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

运行环境 Minecraft 1.20.1 + Forge 47.4.6 及以上 · Java 17
安装方式 将 jar 放入 .minecraft/mods/ 目录后启动游戏
版本区别 完整版已通过 jarJar 内嵌全部第三方库(含 MP3/Ogg 音频解码),无需额外前置; 精简版体积更小,适合不依赖内置音乐播放的场景

下载前请确认你已了解目标服务器的规则。本客户端仅供技术学习与合规环境使用。

Technical Stack

技术架构

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

MINECRAFT
1.20.1
MOD LOADER
Forge 47.4.6
MAPPINGS
Parchment 2023.09.03
BUILD
Gradle 8.8 + ForgeGradle 6.0
JAVA
17 (Temurin)
MOD ID
EixClient
AUTHOR
jiuxian_baka
VERSION
9.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 启动崩溃。构建脚本内置任务自动去重。

BUILD COMMAND
# 依赖已全部缓存,离线构建约 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.+ 等),联网检查新版本会卡在配置阶段十几分钟且零输出。

Music System

内置音乐系统

一套完整的本地 + 在线双模播放器,与游戏内 HUD 深度联动。

🎚音质档位

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

🎛灵动岛样式

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

Changelog

版本历程

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

v9.2

卡顿与移动错乱修复

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

v9.1

位置同步链路修复

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

v9.0beta

移动参考系修复

重写 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 模块层冲突启动崩溃。

FAQ

常见问题

完整版和精简版该下哪个?
两者功能完全一致,区别仅在体积与内嵌依赖。完整版(34.7 MB)通过 jarJar 内嵌了 MP3SPI / VorbisSPI 音频解码库,内置音乐播放器的在线播放可以正常工作;精简版(24.7 MB)去掉了这部分内嵌库, 体积更小,适合不使用内置音乐播放的情况。若你不确定,直接下完整版。
为什么构建时必须加 --offline?
工程内存在动态版本声明(ForgeGradle 的 [6.0.16,6.2)、librarian 的 1.+、 DevAuth 的 -latest)。Gradle 每次都会联网查询最新版本,在慢网络环境下会卡在配置阶段十几分钟且没有任何输出。 加上 --offline 后直接使用本地缓存,构建时间约 1 分钟。
启动时崩溃并提示模块导出包冲突?
这是内嵌的 mp3spi 与 vorbisspi 各自携带了一份字节完全相同的 javazoom.spi.PropertiesContainer 所致。Forge 会把元数据中登记的内嵌 jar 注册为自动模块, 两个模块同时导出同一个包就会导致 JPMS 解析失败。构建脚本内的 fixJarJarSplitPackages 任务会在打包后自动移除重复类并清理未登记的残留内嵌 jar。
为什么在线播放只能用 MP3 档位?
客户端内置的音频解码器为 MP3SPI 与 VorbisSPI,只能解码 MP3 与 OGG。 无损档位返回的是 FLAC,vivid 档位返回的是 MP4(AAC),都无法直接流式播放。 这些档位仍可用于下载收藏,用外部播放器播放。
KillAura 的 Aim Range 和 Reach 有什么区别?
Aim Range 决定「找目标」的范围(默认 5.0),即多远之内会开始转向目标。 Reach 决定「出手」的距离上限(默认 3.0),即多近才会真正挥刀。 两者分开设置是因为服务端只做距离判定,如果直接用 5~6 格去攻击,服务端必然判定距离异常。 Reach 默认 3.0 与原版客户端一致。
攻击时出现 Lagback 计数是怎么回事?
9.2 已修复。此前客户端把服务端的常规位置同步包误当作「被拉回」的证据来累加计数, 于是数字会一直涨到几百——那并不代表真的被拉回了几百次。现在改为按「服务端给出的目标坐标与自身当前位置的实际偏差」 判定,并且有冷却与输出节流;同时堵住了反击退模块延迟位置包、卡空模块无条件吞移动包这两条会让位置脱同步的路径。
Speed / Fly 这些模块名为什么显示成「嘻嘻哈哈」?
这是模块的中文显示名配置,部分模块在语言文件中使用了占位或自定义文案。 切换到英文语言(ClickGUI 内可切换)会显示原始英文模块名。
支持哪些服务端版本?
Minecraft 1.20.1 + Forge 47.4 及以上。版本范围声明为 [1.20.1,1.21),因此理论上 1.20.x 全系均可加载,但仅在 1.20.1 上做过完整测试。