LittleMaidSomeInstructions

LittleMaidSomeInstructions

一个NeoForge 1.21.1的东方小女仆附加组件。它添加了服从任务,允许玩家使用可配置的命令物品发布服务器权威的收集、收获、流体拾取、导航和交付命令。

一个用于 [Touhou Little Maid](https://github.com/TartaricAcid/TouhouLittleMaid) 的 NeoForge 1.21.1 附属模组。它添加了 **服从** 任务,允许玩家使用可配置的指令物品,下达由服务器权威执行的收集、收获、流体拾取、导航和交付指令。

此模组使用 AI 辅助开发。

功能

- 指令一个或多个已拥有且任务设置为 **服从** 的女仆。
- 收集可调整球形范围内单个方块或所有匹配方块。
- 将匹配方块分组为 26 邻接连通簇,并将整个簇分配给各个女仆。
- 从每个女仆的背包中选择有效工具,并在工具损坏时重新检查。
- 当方块无需工具即可产生完整正常掉落物时,可空手工作。
- 收获成熟作物、草、花、浆果丛、特殊的 TLM 作物以及兼容的基于生长阶段(age-based)的作物。
- 重新种植可破坏的基于生长阶段的作物;南瓜和西瓜仍是普通方块目标。
- 使用空桶收集水源流体。
- 使用真实的方块硬度和工具速度,包括同步的破坏裂纹。
- 在目标周围选择最短可达的安全工作位置。
- 可选:当普通导航失败时,可破坏障碍物并搭建实心方块桥梁。
- 仅将当前指令获取的物品交付到原版或模组的 ItemHandler 容器。
- 支持专用服务器、多人游戏所有权检查、每个玩家的范围同步和本地化消息。

需求

组件 所需版本
Minecraft 1.21.1
NeoForge 21.1.248 或兼容的更新 21.1 构建版
Touhou Little Maid 1.5.3 NeoForge 版(适用于 Minecraft 1.21.1)或兼容版本
Java 21

本模组和 Touhou Little Maid 必须同时安装在服务器和每个加入的客户端上。

安装

1. 为 Minecraft 1.21.1 安装 NeoForge。
2. 将 Touhou Little Maid 和本模组的 JAR 文件放入 `mods` 文件夹。
3. 启动游戏或服务器一次以生成配置文件。
4. 在女仆 GUI 中,将一个或多个已拥有女仆的任务设置为 **服从**。

基本指令

默认的指令物品是木镐。可以在通用配置中将其替换为任何已注册的物品。

输入 结果
主手指令物品 + 左键点击方块 仅收集该方块。
主手指令物品 + 右键点击方块 收集选定球形范围内的匹配方块。
右键点击成熟作物、草、花或浆果植物 使用适当方法收获范围内所有匹配的合格目标。
右键点击水源流体 使用女仆背包中的桶收集匹配的源方块。
对容器使用指令物品 将该容器绑定为附近已拥有的服从女仆的交付目的地。
按住范围修改键并滚动滚轮 增加或减少范围并显示绿色粒子球体。

指令会影响点击位置 32 格范围内、当前工作类型为 **服从** 的存活且已拥有的女仆。服务器端的冷却时间和最多 4,096 个目标的上限可保护多人游戏服务器免受过度的扫描。

范围和簇

默认范围为 8 格,允许范围为 1–32 格。范围按玩家存储在逻辑服务器上,登录时同步,并且可以通过修改键 + 滚轮或女仆的服从设置界面更改。

通过面、边或角接触的匹配方块会形成一个簇。整个簇会轮询分配给可用的女仆,而簇内的目标则从被点击的方块开始,使用确定性的最近邻路径进行排序。这避免了分裂对角矿脉并减少了不必要的回溯。

工具、掉落物和耐久度

在分配工作之前,服务器会验证女仆是否拥有合适的工具,或者是否可以空手获得完整掉落物。女仆会从她的背包中装备匹配的工具,使用方块/工具速度计算破坏时间,消耗耐久度,并在工具损坏时选择替换工具。如果没有替换工具,任务将停止并显示本地化消息。如果所选工具不会产生任何掉落物,则不会破坏方块。

作物与流体

- 收获甜浆果丛和带浆果的藤蔓时不会破坏植物。
- 成熟的基于生长阶段的作物会被破坏以获取掉落物,然后重置到其最小生长阶段以表示重新种植。
- 如果另一个模组注册了 Touhou Little Maid 特殊作物处理器,则会使用它们。
- 南瓜和西瓜被视为普通方块,不会被重新种植。
- 只收集水源流体,并且女仆必须有一个空桶。

导航、障碍物破坏和桥梁

对于每个目标,服务器会评估交互距离内的安全站立位置,拒绝危险或被阻挡的位置,创建真实路径,并选择最短的可达路线。Touhou Little Maid 的常规移动控制器负责处理普通的单格跳跃。

当没有路线或女仆仍然卡住时,可选的备用行为可以破坏阻挡脚/头的方块,或在目标方向放置桥梁。桥梁方块必须是完整的实心方块,不能有方块实体,也不能是沙砾或沙子等下落方块。当前 GUI 开关会在活动任务期间重新读取,因此立即禁用搭桥可以防止后续放置。

交付容器和时机

通过对其使用指令物品,可以绑定一个箱子或任何暴露 NeoForge ItemHandler 能力的模组方块。每个女仆都会存储自己的容器位置和维度。

服从 GUI 提供以下交付触发选项:

- 在可配置的时间间隔后;
- 完成一个连通簇后;
- 收集满一整组物品后;
- 当女仆背包满时。

无论这些可选触发条件如何,当指令结束且存在要交付的已跟踪指令物品时,总会访问绑定的容器。只有当前指令期间获得的物品才会被移动;女仆库存中的现有内容将被保留。

配置

通用/服务器配置

文件:`config/littlemaidsomeinstructions-common.toml`

toml  
command\_item = "minecraft:wooden\_pickaxe"  

`command_item` 接受已注册的物品资源 ID,包括来自其他模组的物品。服务器值具有权威性,并在玩家登录时同步给他们。更改后需重启世界或专用服务器。

客户端配置和按键绑定

文件:`config/littlemaidsomeinstructions-client.toml`

toml  
range\_modifier\_default\_key = "key.keyboard.left.control"  

此值定义默认/重置绑定,编辑后需要重启游戏。活动绑定可以在以下位置正常更改:

`选项 → 控制 → 按键绑定 → 女仆:一些指令 → 范围调整修改键`

Minecraft 会将控制菜单中的覆盖设置保存在其正常的选项文件中。按 **重置** 将恢复为客户端配置指定的默认值。

每个女仆的服从设置

设置 含义
采集范围 复制到控制者当前指令范围的范围。
破坏障碍物 允许定时破坏阻碍备用移动的方块。
搭建桥梁 允许从背包中放置安全的完整实心方块以跨越间隙。
定时交付 启用基于时间间隔的交付。
簇交付 在每个连通簇完成后交付。
整组交付 指令收集满一整组物品后交付。
满背包交付 当背包没有可用空间时交付。
交付间隔 启用定时交付时为 5–600 秒。

多人游戏与安全模型

所有目标发现、所有权检查、工具验证、路径决策、掉落物、世界更改和容器转移均在逻辑服务器上执行。客户端仅发送请求的范围并显示粒子和消息。服务器会限制范围,再次检查同步的指令物品,并发送接受的值。工作会话绑定到女仆 UUID、所有者 UUID 和维度,并在所有权、任务类型或玩家连接发生变化时停止。