文件
AutoStore/README.md
T
lyizai c80bde4e3a v1.3.1: 修复溺水越沉越深 + 自动用船坐船航行
- 自动游泳改为只要在水中就持续按住空格(不再受 Baritone 接管条件影响),玩家不再越沉越深;坐船/用船流程/走两步时自动松开
- 自动用船升级:开阔水面游泳时也能直接放船登船,登船后自动坐船朝目标区块航行(替代 Baritone 水中游泳),用船期间暂停 Baritone 寻路、靠岸下船回收后自动恢复
- 登船失败加入冷却(约4秒),避免每帧重试刷屏;航行中船消失/到目标区块后自动下船
- 版本号升至 1.3.1
2026-09-12 11:57:13 +08:00

52 行
4.6 KiB
Markdown

# AutoStore — Minecraft 自动扩地模组
一个 Fabric 客户端模组,用于在支持 `/u claimmode` 的领地插件服务器上自动扩张领土。
## 功能
- 从远程 `markers.json` 拉取各国领土边界
- 四种扩地策略:方形外扩、区域扩地、玩家周围、绕国一圈
- 区域扩地采用 S 形扫描:从与己方领土接壤的区块开始,横向/纵向 S 形扫过整个矩形,不沿邦国边界,但保证每个新占领区块都与**己方领土**接壤(仅四个正方向,不把其他邦国领土计入接壤)
- 自动寻路(Baritone)前往目标区块;监听 Baritone 路径事件,目标不可达(CALC_FAILED,如被悬崖/高山/水体隔断)时重试、耗尽后先"往边上走两步"再试,仍失败才切换目标;寻路超时则重新寻路(不立即回城)
- 高度偏好寻路:寻路优先往高处走(y 越大优先级越高,y 越小有惩罚),适合山区/高原目标;可通过配置关闭或调整权重
- 连续寻路超时回城:连续寻路超时累计超过 1 分钟(可配置)时,先反复尝试"往边上走两步"脱困(默认最多 3 轮),仍无法脱困才自动发送 `/u return`,约 10 秒后传送到可寻路位置,随后重新规划并从最高优先级区块重新开始扩地
- 运行时接壤校验:寻路/等待阶段每帧校验目标是否仍与己方领土接壤,地图刷新导致边界变化时立即跳过
- 目标有效性校验:目标若已被其他邦国占领则立即跳过
- 现实时间限制:仅 11:00-22:00(本地现实时间)允许开拓,其余时段启动会被拒绝、运行中到点自动停止
- 自动进食(饥饿时自动吃背包食物)
- 自动攻击敌对生物:扩地途中自动面向并攻击索敌范围内的敌对生物(满蓄力出手、不追击、不打断寻路);严格豁免不会主动攻击玩家的中立生物——铁傀儡、僵尸猪灵永不攻击,末影人(仅被激怒)、蜘蛛(仅黑暗中)、猪灵(仅玩家未穿金甲)按原版敌对条件反击,狼、蜜蜂、羊驼等其它中立生物一律不打
- 耐久保护回城:每 2 秒检查主手/副手/四件盔甲耐久,任意一件剩余耐久低于阈值(默认 15%,可在 GUI 调整)时自动发送 `/u return` 回城并停止扩地,防止装备被怪物磨没
- 自动用船过水:扩地途中遇开阔水域(默认宽度 ≥ 4 格、长度 ≥ 6 格)自动切到主手放船并登船,坐船朝目标区块航行;靠岸前自动下船并攻击船实体回收船。水面游泳时也能直接登船,用船期间暂停 Baritone 寻路、结束后自动恢复(仅背包有任意 `*_boat`/`*_chest_boat` 时生效)
- 自动游泳防溺水:玩家在水中(含 Baritone 寻路期间)持续按住跳跃键上浮,不会沉入水中越沉越深;坐上船或进入用船流程时自动松开,避免与航行/登船冲突
- 实时地图 GUI(通过 Ctrl+R 打开)
- 监听聊天/字幕消息判断开垦结果
- 刷新地图时与最新 `markers.json` 核对已占领区块,丢弃地图未确认的超期假占领,避免高地扩地残留空洞
- 刷新请求带缓存击穿(时间戳参数 + no-cache 头),修复约半数刷新命中网络缓存拿到旧数据、导致目标被误标"已占领"且长时间不修正的问题;占领成功后立即触发刷新确认,假占领确认宽限期缩短至 60 秒
- 飞地(疏漏区块)检测:按 dynmap 奇偶填充规则解析领土多边形,正确识别国中由边界围出的内圈空腔;内置地图用红色标出己方飞地,自动扩地时优先填补这些缺口
- 区域扩地严格 S 形(蛇形)扫描:起始边为矩形四条边中离王城最近的一条,由内而外推进;即使待开垦区块构成不规则多边形也按 S 形一路扫过去
- 性能优化:地图渲染按视口快速过滤(不再每帧全量遍历 8 万区块)、飞地检测移至后台线程预计算、接壤校验零集合复制、响应内容未变化时跳过重复解析、ChunkPos 跨模型驻留复用——修复打开 GUI 与刷新地图时游戏卡顿、内存占用偏高的问题
- 日志导出:GUI 右上角“导出日志”按钮,或 `/autostore log` 命令,记录寻路、坐标、状态、路径事件等
## 安装
1. 安装 Fabric Loader 0.16.14+ 和 Fabric API
2. 将 `autostore-1.3.1.jar` 放入 `.minecraft/mods/` 目录
3. 启动游戏,按 `Ctrl+R` 打开 GUI
## 构建
```bash
# 依赖:JDK 21+
./build_mod.sh
```
输出文件:`autostore-1.3.1.jar`
## 赞助支持
如果你觉得这个模组对你有帮助,欢迎赞助支持一下创作者 ❤️
![赞助码](docs/sponsor.png)
你的支持是持续开发的动力!