G1axBow优化器

G1axBow优化器

G1axBowOptimizer 消除了使用弓和弩时由服务器往返时间引起的客户端延迟

游戏机制

🎯 功能简介

厌倦了高延迟服务器上的弓箭延迟?G1axBowOptimizer 消除了使用弓和弩时客户端人为造成的延迟!

特性:

  • 瞬间释放箭矢/弩箭 - 松开右键时立即发射
  • 🎨 无动画不同步 - 弓保持拉伸的时长正确
  • 🌐 适用于任何延迟 - 在 10ms 或 200ms 延迟下手感一致
  • 🔄 瞬间切换物品 - 发射后立即切换物品
  • 🏹 灵敏的快速射击 - 连续射击手感顺滑且一致

❌ 问题所在

默认情况下,Minecraft 会等待服务器确认后才登记弓/弩的射击。在高延迟下这会导致:

  • 松开右键与箭矢发射之间存在可见延迟
  • 动画不同步(弓保持拉伸状态过久)
  • 箭矢时序不一致
  • 发射后物品切换迟钝
  • 快速射击无响应

✅ 解决方案

G1axBowOptimizer 完全在客户端处理弓/弩机制:

  • 在本地追踪拉伸/蓄力进度,无需等待服务器
  • 当你正确完成动作时,抑制服务器的不同步数据包
  • 允许释放后瞬间切换物品
  • 适用于任何服务器 - 无需服务端模组!

🧪 自行测试

加入一个高延迟服务器(100+ ms)并:

  1. 不使用该模组使用弓 - 注意延迟
  2. 安装模组后重试 - 瞬间释放!
  3. 尝试快速射击 - 手感灵敏且一致
  4. 发射后切换物品 - 瞬间切换!

🔧 技术细节

该模组使用 Mixin 来:

  • 挂钩 BowItemCrossbowItem 以追踪使用状态
  • 拦截 ClientPlayerInteractionManager 以检测拉伸
  • 通过 ClientPlayNetworkHandler 抑制不必要的服务器数据包
  • 通过 ClientPlayerEntity tick 事件追踪蓄力进度

注意:服务器仍然权威地处理所有伤害和箭矢物理。该模组仅优化客户端感知和输入响应性。

✅ 兼容性

  • 仅客户端 - 适用于任何服务器
  • 兼容 OptiFine、Sodium、Lithium、Iris
  • 与其他优化模组无冲突
  • 需要 Fabric API