diff --git a/Home.md b/Home.md index e69de29..8a9d91a 100644 --- a/Home.md +++ b/Home.md @@ -0,0 +1,80 @@ +# AutoStore — Minecraft 自动扩地模组 + +一个 Fabric 客户端模组,用于在支持 `/u claimmode` 的领地插件服务器上自动扩张领土。 + +## 功能 + +- 从远程 `markers.json` 拉取各国领土边界 +- 四种扩地策略:方形外扩、区域扩地、玩家周围、绕国一圈 +- 区域扩地采用严格 S 形扫描:起始边取矩形四条边中**离王城直线距离最近**的一条,由内而外推进,不会先跑到外侧绕圈;行/列内标准蛇形往返,即使待开垦区块是不规则多边形也按 S 形一路扫过;保证每个新占领区块都与**己方领土**接壤(仅四个正方向,不把其他邦国领土计入接壤) +- 运行时接壤校验:寻路/等待阶段每帧校验目标是否仍与己方领土接壤,地图刷新导致边界变化时立即跳过,避免走到不接壤区块 +- 自动寻路(Baritone)前往目标区块;监听 Baritone 路径事件,目标不可达(CALC_FAILED,如被悬崖/高山/水体隔断)时重试、耗尽后先往边上走两步再试,仍失败才切换目标;寻路超时则重新寻路(不立即回城),连续寻路超时累计超过 1 分钟自动发送 `/u return` 回城传送,传送完成后从最高优先级区块重新开始扩地 +- 现实时间限制:仅 11:00-22:00(本地现实时间)允许开拓;不在该时段点击开始会登记为「等待」,进入时段后自动启动,运行中到点自动停止;等待期间可手动取消 +- 目标有效性校验:目标若已被其他邦国占领则立即跳过 +- 刷新地图时与最新 `markers.json` 核对已占领区块,丢弃地图未确认的超期假占领,避免高地扩地残留空洞 +- 飞地(疏漏区块)检测:按 dynmap 奇偶(even-odd)填充规则解析领土多边形,正确识别国中由边界围出的内圈空腔;内置地图用红色标出己方飞地,自动扩地时优先填补这些缺口 +- 自动进食(饥饿时自动吃背包食物) +- 实时地图 GUI(通过 `Ctrl+R` 打开) +- 监听聊天/字幕消息判断开垦结果 +- 日志导出:GUI 右上角“导出日志”按钮,或 `/autostore log` 命令,记录寻路、坐标、状态、路径事件等 + +## 安装 + +1. 安装 Fabric Loader 0.16.14+ 和 Fabric API +2. 将 `autostore-1.2.4.jar` 放入 `.minecraft/mods/` 目录 +3. 启动游戏,按 `Ctrl+R` 打开 GUI + +> baritone 已内置于模组 jar,无需额外安装。 + +## 构建 + +```bash +# 依赖:JDK 21+ +./gradlew build +``` + +输出文件:`build/libs/autostore-1.2.4.jar` + +## 命令 + +| 命令 | 说明 | +| --- | --- | +| `/autostore gui` | 打开 GUI(或按 Ctrl+R) | +| `/autostore start [数量]` | 开始扩地,-1 为持续 | +| `/autostore stop` | 停止扩地 | +| `/autostore status` | 查看状态 | +| `/autostore refresh` | 刷新地图 | +| `/autostore auto` | 自动识别邦国 | +| `/autostore state <名>` | 设置邦国 | +| `/autostore strategy <1-4>` | 设置策略 | +| `/autostore rings <层数>` | 设置圈数上限 | +| `/autostore log` | 导出日志到 config 目录 autostore-debug.log | + +## 版本记录 + +| 版本 | 说明 | +| --- | --- | +| v1.2.4 | 新增连续寻路超时累计超过 1 分钟自动发送 `/u return` 回城传送,传送完成后从最高优先级区块重新开始扩地(传送等待 12 秒,覆盖 10 秒传送延迟并留余量);寻路重试耗尽时先不切换目标,改为「往边上走两步」(横向移动约 2.5 格,被挡则换另一侧,两侧均被挡才放弃)后再重试原目标,仍失败才切换目标或回城 | +| v1.2.3 | 不在开拓时段点击开始改为登记等待:进入 11:00-22:00 后自动启动,等待期间可手动取消;同步 README/安装/构建的 jar 版本引用至 1.2.3 | +| v1.2.2 | 修复开启「放置」时搭路原地抽搐、放不出方块(配套 `allowParkourPlace`、归零放方块代价、允许跳跃搭路);根治寻路对可达目标秒报「不可达」:删除自定义 `ChunkGoal`(含高度 isInGoal 硬约束),改用 Baritone 原生 `GoalXZ` 到区块中心;CALC_FAILED 改为先重试再切目标 | +| v1.2.1 | 修复刷新地图时目标被误标为已占领(时间戳+no-cache 击穿网络缓存、假占领宽限期缩短为 60s、通用成功消息增加玩家位置校验);修复国中飞地无法显示:按 dynmap 奇偶(even-odd)填充规则解析领土多边形,内圈孔洞不再被并集填充掩盖(实测可识别 7 处飞地);优化内存与卡顿(渲染视口过滤、飞地后台预计算、接壤校验零复制、重复响应跳过解析、ChunkPos 驻留复用);区域扩地重写为严格 S 形、由内而外(起始边离王城直线距离最近) | +| v1.2.0 | 新增飞地(疏漏区块)检测:内置地图用红色标出己方飞地,自动扩地时优先填补,确保领土闭合不留缺口 | +| v1.1.9 | 修复区域扩地接壤判断误把其他邦国领土计入;增加运行时接壤校验;监听寻路失败及时跳过不可达目标;寻路超时改为重新寻路/跳过而非回城;新增日志导出;新增现实时间限制(11:00-22:00) | +| v1.1.8 | 回退寻路逻辑至 1.1.3,修复玩家不移动;修复目标区块中心点不可达导致的错位;新增寻路超时 `/u return` 回城自救 | +| v1.1.7 | 移除寻路前的相邻领土校验,修复玩家不移动;修正 baritone 打包 | +| v1.1.6 | 版本号与构建系统调整 | + +## 联系方式 + +项目主页:https://git.bgjq.top/Lyizai/AutoStore + +--- +更新时间:2026-08-21 + +## 赞助支持 + +如果你觉得这个模组对你有帮助,欢迎赞助支持一下创作者 ❤️ + +![赞助码](sponsor.png) + +你的支持是持续开发的动力!