跳到主要内容

BetterFood 行为

BetterFood 使用考虑饥饿值的食物选择,而不是简单地先吃最有营养的物品。

触发时机

BetterFood 以最高事件优先级响应原版的 FoodLevelChangeEvent,并且仅在玩家饥饿值下降时才会处理。玩家必须拥有 betterfood.user 权限,并且没有通过 /betterfood toggleEating 关闭自动进食。

选择规则

当插件决定吃什么时,会按两步进行:

  1. 理想候选 —— 首先寻找最适合当前缺失饥饿值的单一最佳食物:
    • 优先选择能在缺失饥饿值范围内提供最高饥饿值的食物(饱和度用于打破平局)。
    • 如果没有完全匹配的,则回退到溢出最小的食物(饱和度用于打破平局)。
  2. 背包匹配 —— 然后扫描玩家的背包存储以查找该理想食物。如果玩家实际并未携带该食物,插件会遍历整个背包,对玩家拥有的每一种支持食物应用相同的契合/溢出比较,然后选出可用的最佳食物。

其目的是避免在饥饿缺口较小时浪费强效食物,因为更弱的物品就足够了。

进食之后,恢复的饥饿值会上限为 20,饱和度的上限为所得到的饥饿值,与原版限制一致。

受保护的物品

当前代码保护的远不止重命名或带有描述的食物。如果食物具有以下任意自定义物品特征,BetterFood 都会避免自动消耗:

  • 自定义名称或物品名称
  • 描述(lore)
  • 自定义模型数据
  • 附魔
  • 属性修饰符
  • 不可破坏状态
  • 持久数据容器标签

这旨在降低误食插件物品或装饰物品的可能性。

支持的食物

BetterFood 会自动食用以下食物:

食物恢复饥饿值恢复饱和度
苹果42.4
烤马铃薯56.0
甜菜根11.2
甜菜根汤67.2
面包56.0
胡萝卜33.6
牛排812.8
熟鸡肉67.2
熟鳕鱼56.0
熟羊肉69.6
熟猪排812.8
熟兔肉56.0
熟鲑鱼69.6
曲奇20.4
干海带10.6
发光浆果20.4
金胡萝卜614.4
西瓜片21.2
蘑菇煲67.2
马铃薯10.6
南瓜派84.8
兔肉煲1012.0
甜浆果20.4

排除的食物

以下可食用物品被刻意排除在自动食用之外。这些是生肉、特殊物品或具有负面或不可预测效果的食物:

  • 生牛肉
  • 蛋糕
  • 生鸡肉
  • 紫颂果
  • 生鳕鱼
  • 附魔金苹果
  • 金苹果
  • 蜂蜜瓶
  • 生羊肉
  • 毒马铃薯
  • 生猪排
  • 河豚
  • 生兔肉
  • 腐肉
  • 生鲑鱼
  • 蜘蛛眼
  • 迷之炖菜
  • 热带鱼

任何尚未分类的较新 Minecraft 版本添加的可食用材料也会被跳过。如果插件在启动时检测到未分类的可食用材料,会在日志中输出警告。

容器残留

如果消耗的食物留下残留物品,BetterFood 会保留它。

示例包括碗或其他返回容器的食物。残留物会返回到背包中,如果背包空间不足则会掉落在玩家身旁。