Comportement de BetterFood
BetterFood utilise une sélection d'aliments tenant compte de la faim au lieu de simplement manger l'objet le plus nutritif en premier.
Quand il se déclenche
BetterFood réagit à l'événement vanilla FoodLevelChangeEvent à la priorité HIGHEST et ignore les événements annulés, de sorte qu'un autre plugin qui annule ou réécrit le changement de faim a le dernier mot avant que BetterFood ne l'examine. Il n'agit que lorsque la faim du joueur diminue. Le joueur doit posséder la permission betterfood.user et ne doit pas avoir désactivé l'alimentation automatique via /betterfood toggleEating.
Règles de Sélection
- Les aliments sont triés par faim restaurée décroissante, puis saturation décroissante et nom du matériau croissant. Une table précalculée indique où commencer la recherche pour chaque niveau de faim.
- La recherche descend ensuite vers les aliments moins nourrissants. Le premier aliment transporté qui n'est pas personnalisé est consommé ; entre plusieurs piles identiques, l'emplacement d'indice le plus bas est choisi.
Une partie de la restauration peut être perdue : à 11 de faim, un ragoût de lapin (10) peut être choisi avant du bœuf cuit (8), alors qu'il ne manque que 9 points. Aucune seconde passe ne réduit cet excédent. La faim est plafonnée à 20 et la saturation à la faim obtenue.
Aliments en bol
La soupe de betteraves, la soupe de champignons et le ragoût de lapin renvoient un bol vide lorsqu'ils sont mangés automatiquement, conformément au vanilla :
- si la pile consommée est épuisée, le bol la remplace dans le même emplacement
- sinon, le bol est ajouté à l'inventaire, et lâché aux pieds du joueur s'il n'y a pas de place pour lui
Objets Protégés
BetterFood ne consomme automatiquement qu'un objet strictement identique, octet pour octet, à une pile vanilla intacte du même matériau. Tout objet portant des données supplémentaires est ignoré, notamment :
- un nom d'affichage personnalisé
- une description (lore)
- les enchantements, les données de modèle personnalisé et les autres composants d'objet
- les données persistantes écrites par d'autres plugins
La vérification compare l'objet entier à une pile vanilla fraîchement créée plutôt qu'à une liste de champs maintenue à la main, de sorte que les données d'objet ajoutées par de futures versions de Minecraft sont ignorées automatiquement. Ceci vise à réduire le risque de consommer par erreur des objets de plugins ou des objets décoratifs.
Aliments pris en charge
BetterFood consommera automatiquement les aliments suivants :
| Aliment | Faim restaurée | Saturation restaurée |
|---|---|---|
| Pomme | 4 | 2.4 |
| Pomme de terre cuite | 5 | 6.0 |
| Betterave | 1 | 1.2 |
| Soupe de betteraves | 6 | 7.2 |
| Pain | 5 | 6.0 |
| Carotte | 3 | 3.6 |
| Steak (bœuf cuit) | 8 | 12.8 |
| Poulet cuit | 6 | 7.2 |
| Morue cuite | 5 | 6.0 |
| Mouton cuit | 6 | 9.6 |
| Côtelette de porc cuite | 8 | 12.8 |
| Lapin cuit | 5 | 6.0 |
| Saumon cuit | 6 | 9.6 |
| Cookie | 2 | 0.4 |
| Varech séché | 1 | 0.6 |
| Baies lumineuses | 2 | 0.4 |
| Carotte dorée | 6 | 14.4 |
| Tranche de pastèque | 2 | 1.2 |
| Soupe de champignons | 6 | 7.2 |
| Pomme de terre | 1 | 0.6 |
| Tarte à la citrouille | 8 | 4.8 |
| Ragoût de lapin | 10 | 12.0 |
| Baies sucrées | 2 | 0.4 |
Aliments exclus
Les objets comestibles suivants sont intentionnellement exclus de la consommation automatique. Il s'agit de viandes crues, d'objets spéciaux ou d'aliments aux effets négatifs ou imprévisibles :
- Bœuf (cru)
- Poulet (cru)
- Fruit du chorus
- Morue (crue)
- Pomme dorée enchantée
- Pomme dorée
- Fiole de miel
- Mouton (cru)
- Pomme de terre empoisonnée
- Côtelette de porc (crue)
- Poisson-globe
- Lapin (cru)
- Chair putréfiée
- Saumon (cru)
- Œil d'araignée
- Soupe suspecte
- Poisson tropical
Tout autre matériau comestible ajouté par des versions plus récentes de Minecraft qui ne figure pas dans la liste des aliments pris en charge ci-dessus sera également ignoré tant qu'il n'y sera pas explicitement ajouté.
Au démarrage, BetterFood effectue un audit de couverture portant sur tous les objets comestibles connus de votre version de serveur et journalise une unique ligne de console listant ceux qu'il ne consomme volontairement pas automatiquement (BetterFood is intentionally not auto-eating these food items: ...), afin que vous puissiez voir d'un coup d'œil exactement quels objets sont ignorés sur votre version de serveur. Cette ligne n'est affichée que s'il y a au moins un objet ignoré : l'absence totale de ligne signifie donc que la liste des aliments pris en charge couvre déjà tous les objets comestibles de cette version.