maidmining-1.0.1.jar
Curse Maven Snippet
What's new
本次更新围绕「女仆在地下挖矿会卡住」做了一次系统性修复,并补上矿石定向与模组矿石支持。
修复
卡住相关(本次重点)
- 不再被基岩卡住 —— 破坏结果现在会分类(永不可破 / 流体 / 被保护 / 暂时失败)。旧版把四种情况混成一个
false,于是对着基岩空转约 6 秒,再叠加错误的恢复动作(向上传送并清零卡住计数),最终形成「贴着基岩无限上爬」的死循环。现在遇到不可破坏的方块会立即放弃该目标并换下一个。 - 矿道不再过高 —— 隧道净高改为按女仆碰撞箱推导(1×2,与玩家身高一致)。旧版固定挖 3 格高,比需要多挖约 1/3。上台阶处会在头顶局部多挖 1 格作为起跳空间——因为 2 格高的巷道里跳跃会被天花板截断,1 格台阶在物理上迈不上去。
- 修复上坡「原地蹦跶不向前」 —— 上行不再依赖原版寻路(它在 1 格宽隧道里给不出路径,走位目标会被
MoveToTargetSink直接抹掉),改为逐 tick 直接驱动移动;跳跃优先,传送仅作兜底,且兜底前会校验落点、兜底后清除累计落差。 - 修复上坡时「空中放方块把自己挡住」 —— 垫脚方块不再于空中放置,也不会放进女仆自身所在的两格身体柱;只有确实需要抬升(高度差 ≥ 2)时才搭台阶,1 格高差直接用「伸手挖」。
- 修复「突然停住」 —— 新增发呆检测:位置连续 20 tick 不变即接管为直接驱动,解决「代码以为在正常掘进、女仆却一步没动」。
- 修复物品复制 —— 收集溢出掉落物时,「只装下一部分」的情况会正确回写剩余数量。旧版不回写,导致背包放不下时物品同时存在于背包与地面。
- 修复镐子破损无音效/动画 —— 耐久耗尽时广播破坏事件。
- 修复副手定向过滤失效 —— 见下方「矿石定向」。
专用服务器安全
- 任务定义不再引用任何客户端类(旧版在
MiningTask里调用net.minecraft.client.*来取翻译文本,这在专用服务器上会NoClassDefFoundError,而旧代码只catch (Exception)捕不到Error)。现在改用 TLM 的默认实现:任务名与描述由 UID 自动生成 i18n key,交给 GUI 翻译。
新增
- 模组矿石自动支持 —— 矿石识别改为标签驱动:
#minecraft:ores/#forge:ores/#c:ores,以及任意<命名空间>:ores/<材料>子标签。因此镍、铝、铅、锡等遵循 Forge 约定的模组矿石自动可被搜寻,也自动支持副手定向,无需为任何模组单独适配。 - 远古残骸支持 —— 按 Forge 的
forge:ores/netherite_scrap约定,副手放netherite_scrap或远古残骸方块都能定向。 - 副手定向过滤重做 —— 解析顺序:命名模式(
raw_iron/raw_iron_block/iron_ore/deepslate_iron_ore/iron_ingot/iron_dust…)→ 物品标签(forge:raw_materials/nickel、forge:ingots/aluminum…,覆盖命名不按套路的模组材料)→ 别名表(lapis_lazuli→lapis、quartz→nether_quartz…)→ 物品名本身;每个候选都与「世界里真实存在的矿石材料」核对。识别不了时会给出 WARN 提示,不再静默变成「挖全部」。旧版只认raw_*和*_ore,放钻石/煤/红石等会静默失效。 - 镐子识别放宽 ——
#minecraft:pickaxes→forge/c:tools/pickaxes→ToolActions.PICKAXE_DIG(模组镐主力)→ 「能正确开采石头」兜底。带镐标签或行为上就是镐的工具都能用。 - 卡住快照日志 —— 无进展时每 5 秒输出一行
Stuck state=… target=… feet=… dy=… dist=…,便于定位问题。 - 无进展看门狗 —— 与目标距离连续 20 秒没有缩短即放弃该目标。
- 自动化测试 —— 建立 GameTest 基础设施,落地 13 个用例(破坏分类语义、副手解析 11 种物品、镐子识别 12 项、矿石材料覆盖等),
./gradlew runGameTestServer即可跑,无需客户端。 - 全新封面与图标 —— 封面主角为车万女仆的「酒狐」
This mod has no additional files

