Saltar al contenido principal

Comportamiento de BetterFood

BetterFood selecciona los alimentos según el hambre del jugador, en vez de comer siempre el más nutritivo primero.

Cuándo se activa​

BetterFood responde al FoodLevelChangeEvent de vanilla con prioridad HIGHEST e ignora los eventos que ya están cancelados cuando se ejecuta su listener. Lee el valor de hambre que hayan dejado los listeners anteriores. Esto no garantiza el orden respecto a otro listener con la misma prioridad. Solo actúa cuando disminuye el nivel de hambre del jugador. El jugador debe tener el permiso betterfood.user y no haber desactivado la alimentación automática con /betterfood toggleEating.

Reglas de selección​

Para decidir qué comer, el plugin recorre una sola vez sus alimentos compatibles:

  1. Los alimentos compatibles se guardan en un array ordenado por hambre restaurada, de mayor a menor. En caso de empate, se usa la saturación restaurada, también de mayor a menor, y después el nombre del material, en orden ascendente. Una tabla precalculada selecciona el índice inicial para cada nivel de hambre.
  2. Desde ese índice, el plugin recorre el array hacia los alimentos menos nutritivos y toma el primer alimento que el jugador lleve y que no sea un objeto personalizado. Si el jugador lleva varias pilas del mismo alimento, se usa la que ocupa la ranura de menor índice del inventario. En cuanto encuentra uno, lo consume y termina la búsqueda.

El primer alimento válido puede restaurar más hambre de la que falta. Por ejemplo, con un nivel de hambre de 11, puede elegir estofado de conejo, que restaura 10, antes que filete, que restaura 8, aunque solo falten 9 puntos. No hay una segunda pasada para reducir el exceso de restauración.

Tras comer, el hambre se limita a 20 y la saturación al nivel de hambre resultante, como en vanilla.

Alimentos con cuenco​

La sopa de remolacha, el estofado de champiñones y el estofado de conejo devuelven un cuenco vacío al consumirse automáticamente, como en vanilla:

  • si se agota la pila consumida, el cuenco la sustituye en la misma ranura
  • en caso contrario, se añade el cuenco al inventario y, si no hay espacio, se deja caer a los pies del jugador

Objetos protegidos​

BetterFood compara cada candidato con un objeto vanilla recién creado del mismo material mediante ItemStack.isSimilar de Bukkit. No tiene en cuenta el tamaño de la pila. Omite los objetos cuyos datos difieran, incluidos:

  • un nombre visible personalizado
  • lore
  • encantamientos, datos de modelo personalizado y otros componentes de objeto
  • datos persistentes escritos por otros plugins

La comprobación compara el objeto completo con una pila vanilla recién creada, en lugar de usar una lista de campos mantenida a mano. Así, los datos de objeto que añadan futuras versiones de Minecraft también hacen que se omita el objeto automáticamente. Esto busca reducir el riesgo de consumir por error objetos de plugins o decorativos.

Alimentos compatibles​

BetterFood consume automáticamente los siguientes alimentos:

AlimentoHambre restauradaSaturación restaurada
Manzana42.4
Patata asada56.0
Remolacha11.2
Sopa de remolacha67.2
Pan56.0
Zanahoria33.6
Filete812.8
Pollo cocinado67.2
Bacalao cocinado56.0
Cordero cocinado69.6
Chuleta de cerdo cocinada812.8
Conejo cocinado56.0
Salmón cocinado69.6
Galleta20.4
Alga seca10.6
Bayas luminosas20.4
Zanahoria dorada614.4
Rodaja de sandía21.2
Estofado de champiñones67.2
Patata10.6
Pastel de calabaza84.8
Estofado de conejo1012.0
Bayas dulces20.4

Alimentos excluidos​

Los siguientes objetos comestibles se excluyen de la alimentación automática de forma intencionada. Son carnes crudas, objetos especiales o alimentos con efectos negativos o impredecibles:

  • Carne de vaca cruda
  • Pollo crudo
  • Fruta chorus
  • Bacalao crudo
  • Manzana dorada encantada
  • Manzana dorada
  • Frasco con miel
  • Cordero crudo
  • Patata venenosa
  • Chuleta de cerdo cruda
  • Pez globo
  • Conejo crudo
  • Carne podrida
  • Salmón crudo
  • Ojo de araña
  • Estofado sospechoso
  • Pez tropical

Cualquier otro material comestible que añadan versiones posteriores de Minecraft y que no figure en la lista de alimentos compatibles también se omitirá hasta que se añada expresamente a esa lista.

Al arrancar, BetterFood comprueba todos los objetos comestibles que reconoce tu versión del servidor y escribe una sola línea en la consola con los que ha decidido no consumir automáticamente (BetterFood is intentionally not auto-eating these food items: ...). Así puedes ver exactamente qué objetos omite en tu versión del servidor. La línea solo aparece si hay al menos un objeto omitido; si no aparece, la lista de alimentos compatibles ya cubre todos los objetos comestibles de esa versión.

Solución de problemas​

Si no se está comiendo la comida de un jugador, comprueba esto en orden:

  • el jugador tiene betterfood.user y no ha desactivado la alimentación con /betterfood toggleEating
  • la comida está en la lista de alimentos compatibles
  • la pila es comida vanilla normal, sin nombre personalizado, lore, encantamientos ni datos de plugins (consulta Objetos protegidos)
  • el hambre realmente está bajando. BetterFood no es un temporizador y solo come cuando baja la barra de hambre.
  • ningún otro plugin cancela el cambio de hambre. BetterFood ignora los FoodLevelChangeEvent que ya están cancelados.

Cuando pidas ayuda, incluye las versiones de BetterFood y del servidor, el tipo de comida, si la pila es comida vanilla normal y los pasos que reproducen el problema.