BetterFood 行為
BetterFood 使用考慮飢餓度的食物選擇,而不是簡單地優先吃掉最有營養的物品。
觸發時機
BetterFood 以 HIGHEST 優先級回應原版的 FoodLevelChangeEvent,並忽略已被取消的事件,因此若有其他外掛程式取消或改寫該飢餓變化,會在 BetterFood 檢視之前先取得最終決定權。它僅在玩家飢餓值下降時生效。玩家必須擁有 betterfood.user 權限,且不能透過 /betterfood toggleEating 關閉自動進食。
選擇規則
- 食物按恢復飢餓值遞減排序,相同則按飽和度遞減、材料名遞增排序。預先計算的表會為每個飢餓值決定搜尋起始位置。
- 從該位置往恢復量較低的食物查找,吃掉玩家攜帶的第一個非自訂食物。同種食物有多組時,使用物品欄編號最小的一組。
恢復量可能浪費:飢餓值為11時,即使只缺9點,也可能先選兔肉煲(10)而不是牛排(8)。不會再次比較以減少溢出。飢餓值上限為20,飽和度上限為恢復後的飢餓值。
碗裝食物
甜菜根湯、蘑菇煲和兔肉煲在被自動食用時會返還空碗,與原版一致:
- 若被吃掉的堆疊已用盡,空碗會在同一格位取代它
- 否則空碗會被加入物品欄中,若沒有空間則掉落在玩家腳邊
受保護的物品
BetterFood 只會自動消耗與同材料的原始原版堆疊逐位元組完全相同的物品。任何帶有額外物品資料的都會被跳過,包括:
- 自訂顯示名稱
- 描述(lore)
- 附魔、自訂模型資料以及其他物品元件
- 由其他外掛程式寫入的持久資料
這項檢查會將整個物品與一個全新建立的原版堆疊比對,而非依賴手動維護的欄位清單,因此未來 Minecraft 版本新增的物品資料也會自動被跳過。這旨在降低誤食外掛程式物品或裝飾物品的可能性。
支援的食物
BetterFood 會自動消耗以下食物:
| 食物 | 恢復飢餓值 | 恢復飽和度 |
|---|---|---|
| 蘋果 | 4 | 2.4 |
| 烤馬鈴薯 | 5 | 6.0 |
| 甜菜根 | 1 | 1.2 |
| 甜菜根湯 | 6 | 7.2 |
| 麵包 | 5 | 6.0 |
| 胡蘿蔔 | 3 | 3.6 |
| 牛排 | 8 | 12.8 |
| 熟雞肉 | 6 | 7.2 |
| 熟鱈魚 | 5 | 6.0 |
| 熟羊肉 | 6 | 9.6 |
| 熟豬排 | 8 | 12.8 |
| 熟兔肉 | 5 | 6.0 |
| 熟鮭魚 | 6 | 9.6 |
| 餅乾 | 2 | 0.4 |
| 乾海帶 | 1 | 0.6 |
| 發光莓果 | 2 | 0.4 |
| 金胡蘿蔔 | 6 | 14.4 |
| 西瓜片 | 2 | 1.2 |
| 蘑菇煲 | 6 | 7.2 |
| 馬鈴薯 | 1 | 0.6 |
| 南瓜派 | 8 | 4.8 |
| 兔肉煲 | 10 | 12.0 |
| 甜莓果 | 2 | 0.4 |
排除的食物
以下可食用物品被刻意排除在自動進食之外。這些是生肉、特殊物品或具有負面或不可預測效果的食物:
- 生牛肉
- 生雞肉
- 紫頌果
- 生鱈魚
- 附魔金蘋果
- 金蘋果
- 蜂蜜瓶
- 生羊肉
- 毒馬鈴薯
- 生豬排
- 河豚
- 生兔肉
- 腐肉
- 生鮭魚
- 蜘蛛眼
- 迷之燉菜
- 熱帶魚
任何較新 Minecraft 版本新增、但不在上方支援清單中的可食用材料也會被跳過,直到它被明確加入該清單為止。
啟動時,BetterFood 會執行一次涵蓋範圍稽核,並記錄單獨一行主控台訊息,列出它刻意不自動食用的所有可食用材料(BetterFood is intentionally not auto-eating these food items: ...),讓你一眼就能看出在你的伺服器版本上究竟有哪些物品被跳過。只有在至少存在一個被跳過的物品時才會印出該行,因此完全沒有這一行就代表支援清單已涵蓋該版本上所有可食用物品。