文件
AutoRail/README.md
T
lyizai 0347396365 feat: Fabric 1.21.4 + Baritone 自动铺轨 mod 完整实现
- RailProcess: 点到点铺轨(Yaw 取向前方 2 格、合法右键放置、GoalBlock 行走循环)
- 节奏 5 tick(250ms) 适配多人服务器、热键栏切换与 UpdateSelectedSlot 同步
- 悬空自动用圆石垫脚石搭桥、calcFailed 卡死兜底
- 修复 1.21.4 sendMessage 签名编译错误、Gradle 守护进程钉到 JDK 21
- 新增 README 与 .gitignore
2026-08-27 14:10:10 +08:00

2.4 KiB
原始文件 Blame 文件历史

AutoRail — 自动铺铁轨(Fabric 1.21.4 + Baritone API)

面向方向自动铺设铁轨的 Minecraft 客户端模组。不依赖 Baritone 寻路来规划轨道—— 它只借 Baritone 的行走能力做“点到点建造”,保证铁轨能铺过悬崖边等寻路会回避的地形。

使用

  1. 安装 Fabric Loader ≥0.16.9 与 Fabric API,以及 Baritone(1.13.1,兼容 1.21.4 的版本)。
  2. 把 autorail-<version>.jar 放进 mods/。
  3. 进游戏后按 R 开启/关闭。背包里要有铁轨(垫脚石需要时还要有圆石)。
  4. 按住/调整视角方向→玩家会边走边往正前方铺直轨;手动转 90° 即可转弯(只铺直轨)。
  5. 前方被阻挡、找不到地面、铁轨耗尽时自动停止并提示。

行为逻辑

  • 取朝向:读取玩家水平朝向(Yaw),计算正前方 2 格处的地面。
  • 放置:切换热键栏到铁轨并同步 UpdateSelectedSlotC2S,随后通过 ClientPlayerInteractionManager(Baritone 的 IPlayerController)发送右键放置—— 全程合法交互,绝不 world.setBlockState,多人服务器才会承认。
  • 移动:放置后设 GoalBlock 让玩家走到目标点,循环往复。
  • 节奏:每次动作间隔 5 tick(250ms),处于多人服务器建议的 200~300ms 区间。
  • 垫脚石:目标列下方悬空/落差超过 2 格时,先拿圆石右键垫补,再接铺铁轨(可选逻辑,已实现)。
  • 铁轨朝向:交给原版自动衔接(直轨)。转弯靠玩家手动转视角,开发量减半。

开发

gradlew build          # 产物在 build/libs/autorall-<version>.jar
  • src/main/java/com/autorall/AutoRailClient.java — 入口:按键绑定、进程注册
  • src/main/java/com/autorall/process/RailProcess.java — 铺轨主逻辑(IBaritoneProcess)
  • Baritone API 依赖:libs/baritone-api-fabric-1.13.1.jar(本地 modImplementation,Loom 自动重映射)

已知限制

  • 只铺普通铁轨(minecraft:rail),不支持动力铁轨/探测铁轨。
  • 只铺直轨;曲线由原版在相邻铁轨存在时自动形成,手动转弯请让两段直线夹角足够清晰。
  • isSolidBlock 等判定基于客户端世界状态;服务器延误时可能出现个别放置失败,会自动重试。